Human fetal trachea samples collected on Apr3 2019. 10X genomics 3’ kit, v3 chemistry.

The samples come from 2 individuals of gestational ages of 21 weeks and 23 weeks respectively.

library(Seurat)
library(dplyr)
ZipF<-list.files(path=".",pattern="*.gz",full.names = T,recursive = T)
ZipF
library(plyr)
library(R.utils)
ldply(.data=ZipF, .fun=gunzip)  #This just unzips locally
##### First I manually changed all featurres.tsv to genes.tsv. Otherwise Read10X (Seurat v2) would not recognize.
# Load data
file_10Xdir_Hs<-c("GA21wk_v3","GA23wk_v3")
names(file_10Xdir_Hs)<-c("GA21wk_v3","GA23wk_v3")
Hs_Apr3_v3.data <- Read10X(data.dir = file_10Xdir_Hs)
dim(Hs_Apr3_v3.data)
26577 genes based on HG38-plus reference
38892 “cells” are identified by Cell Ranger
Hs_GA2123_Trachea_v3 <- CreateSeuratObject(raw.data = Hs_Apr3_v3.data, min.cells = 1, min.genes = 1, 
    project = "Hs_GA2123_Trachea_v3chemistry")
Hs_GA2123_Trachea_v3@raw.data@Dim
head(Hs_GA2123_Trachea_v3@cell.names)
Hs_GA2123_Trachea_v3 <- FilterCells(object = Hs_GA2123_Trachea_v3, subset.names = c("nGene","nUMI"), 
    low.thresholds = c(1000,4000), high.thresholds = c(Inf,Inf))
Hs_GA2123_Trachea_v3@data@Dim
cell_name<-read.table(text=Hs_GA2123_Trachea_v3@cell.names,sep="_",colClasses = "character")
age<-cell_name[,1]
names(age)<-Hs_GA2123_Trachea_v3@cell.names
Hs_GA2123_Trachea_v3<-AddMetaData(object = Hs_GA2123_Trachea_v3, metadata = age, col.name = "age")
table(Hs_GA2123_Trachea_v3@meta.data$age)
ribo.genes <- grep(pattern = "^RP[SL][[:digit:]]", x = rownames(x = Hs_GA2123_Trachea_v3@data), value = TRUE)
percent.ribo <- Matrix::colSums(Hs_GA2123_Trachea_v3@raw.data[ribo.genes, ])/Matrix::colSums(Hs_GA2123_Trachea_v3@raw.data)
Hs_GA2123_Trachea_v3 <- AddMetaData(object = Hs_GA2123_Trachea_v3, metadata = percent.ribo, col.name = "percent.ribo")
aggregate(Hs_GA2123_Trachea_v3@meta.data[, c(1:2,5)], list(Hs_GA2123_Trachea_v3@meta.data$age), median)
Hs_GA2123_Trachea_v3 <- NormalizeData(object = Hs_GA2123_Trachea_v3)
Hs_GA2123_Trachea_v3 <- ScaleData(object = Hs_GA2123_Trachea_v3)
Hs_GA2123_Trachea_v3 <- FindVariableGenes(object = Hs_GA2123_Trachea_v3, do.plot = TRUE, x.low.cutoff=0.1,x.high.cutoff = Inf, y.cutoff = 0.5)
Hs_GA2123_Trachea_v3 <- RunPCA(object = Hs_GA2123_Trachea_v3, do.print = FALSE)
Hs_GA2123_Trachea_v3 <- ProjectPCA(object = Hs_GA2123_Trachea_v3, do.print = FALSE)
PCHeatmap(object = Hs_GA2123_Trachea_v3, pc.use = 1:10, cells.use = 500, do.balanced = TRUE, label.columns = FALSE, num.genes = 25)
PCElbowPlot(object = Hs_GA2123_Trachea_v3)
n.pcs = 20
res.used <- 0.8

Hs_GA2123_Trachea_v3 <- FindClusters(object = Hs_GA2123_Trachea_v3, reduction.type = "pca", dims.use = 1:n.pcs, 
    resolution = res.used, print.output = 0, save.SNN = TRUE)
Hs_GA2123_Trachea_v3 <- RunTSNE(object = Hs_GA2123_Trachea_v3, dims.use = 1:n.pcs, seed.use = 10, perplexity=30, dim.embed = 2)
TSNEPlot(object = Hs_GA2123_Trachea_v3, do.label = T,group.by="res.0.8",pt.size = 0.2)
TSNEPlot(object = Hs_GA2123_Trachea_v3, do.label = F,group.by="age",pt.size = 0.1)
n.pcs = 20
res.used <- 1.0

Hs_GA2123_Trachea_v3 <- FindClusters(object = Hs_GA2123_Trachea_v3, reduction.type = "pca", dims.use = 1:n.pcs, 
    resolution = res.used, print.output = 0, save.SNN = TRUE,force.recalc=T)
Hs_GA2123_Trachea_v3 <- RunTSNE(object = Hs_GA2123_Trachea_v3, dims.use = 1:n.pcs, seed.use = 10, perplexity=30, dim.embed = 2,k.param=10)
TSNEPlot(object = Hs_GA2123_Trachea_v3, do.label = T,group.by="res.1")
DoHeatmap(object = Hs_GA2123_Trachea_v3, genes.use = c("ANO1","CFTR","EPCAM","TP63","FOXJ1","FOXN4","SCGB1A1","LTF","SNAP25","ASCL1","CHGA","PLP1","MPZ","SOX10","C1QA","FCER1G","PECAM1","LYVE1","RGS5","NOTCH3","ACTA2","ACTG2","DES","PDLIM3","FGL2","PCDH7","MYH11","COL11A1","SOX9","SOX5","SOX6","COL2A1","ACAN","SERPINF1","COL1A1","THBS2","KERA","DCN","LUM","CD34","WNT2","THY1","PI16","CLEC3B","MKI67","TOP2A","TWIST2"), 
    slim.col.label = TRUE, group.label.rot = TRUE,use.scaled = T,group.by="res.1",group.cex = 25,cex.row=25,group.order = c(9,16,12,14,10,19,3,22,20,21,5,7,15,17,8,18,4,0,2,1,13,11,6)
  )
Hs_GA2123_Trachea_v3<-SetAllIdent(Hs_GA2123_Trachea_v3,id="res.1")
GA2123wk_v3.res1.clust.markers <- FindAllMarkers(object = Hs_GA2123_Trachea_v3, only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)
GA2123wk_v3.res1.clust.markers %>% group_by(cluster) %>% top_n(20, avg_logFC)
write.table(GA2123wk_v3.res1.clust.markers,"GA2123wk_v3.res1.markers.txt",sep="\t")
Hs_v3_res1_8_18<-FindMarkers(Hs_GA2123_Trachea_v3,ident.1=c(8),ident.2=c(18),only.pos = F)
Hs_v3_res1_8_18
Hs_v3_res1_2over1<-FindMarkers(Hs_GA2123_Trachea_v3,ident.1=c(2),ident.2=c(1),only.pos = T)
Hs_v3_res1_2over1
Hs_v3_res1_21_20<-FindMarkers(Hs_GA2123_Trachea_v3,ident.1=c(21),ident.2=c(20),only.pos = T)
Hs_v3_res1_21_20
n.pcs = 20
res.used <- 1.2

Hs_GA2123_Trachea_v3 <- FindClusters(object = Hs_GA2123_Trachea_v3, reduction.type = "pca", dims.use = 1:n.pcs, 
    resolution = res.used, print.output = 0, save.SNN = TRUE)
Hs_GA2123_Trachea_v3 <- RunTSNE(object = Hs_GA2123_Trachea_v3, dims.use = 1:n.pcs, seed.use = 10, perplexity=30, dim.embed = 2,k.param=10)
TSNEPlot(object = Hs_GA2123_Trachea_v3, do.label = T,group.by="res.1.2")
n.pcs = 20
res.used <- 1.4

Hs_GA2123_Trachea_v3 <- FindClusters(object = Hs_GA2123_Trachea_v3, reduction.type = "pca", dims.use = 1:n.pcs, 
    resolution = res.used, print.output = 0, save.SNN = TRUE)
Hs_GA2123_Trachea_v3 <- RunTSNE(object = Hs_GA2123_Trachea_v3, dims.use = 1:n.pcs, seed.use = 10, perplexity=30, dim.embed = 2,k.param=10)
TSNEPlot(object = Hs_GA2123_Trachea_v3, do.label = T,group.by="res.1.4")
inport doublet scores generated by Scrublet, and make them a metadata column:
load("GA2123wk_apr3_v3_doubletScore.RData")
Hs_GA2123_Trachea_v3<-AddMetaData(object = Hs_GA2123_Trachea_v3, metadata = GA2123wk_apr3_v3_doubletScore, col.name = "doublet_score")
sum(is.na(Hs_GA2123_Trachea_v3@meta.data$doublet_score))
Hs_GA2123_Trachea_v3<-SetAllIdent(Hs_GA2123_Trachea_v3,id="age")
VlnPlot(object = Hs_GA2123_Trachea_v3, features.plot = c("doublet_score"), nCol = 1,group.by="res.1.4",point.size.use=0.3,ident.include = "GA21wk")
VlnPlot(object = Hs_GA2123_Trachea_v3, features.plot = c("doublet_score"), nCol = 1,group.by="res.1.4",point.size.use=0.3,ident.include = "GA23wk")
DoHeatmap(object = Hs_GA2123_Trachea_v3, genes.use = c("ANO1","CFTR","EPCAM","KRT8","KRT18","TP63","KRT5","KRT14","SOSTDC1","KRT4","KRT13","SPDEF","CREB3L1","MUC5B","FOXJ1","FOXN4","SHISA8","MCIDAS","TUBB3","SNAP25","ASCL1","CHGA","PLP1","MPZ","C1QA","FCER1G","CD3G","PECAM1","NRP1","LYVE1","RGS5","NOTCH3","ACTA2","TAGLN","MYH11","COL8A1","COL11A1","SOX9","COL2A1","ACAN","MIA","DCN","LUM","CD34","WNT2","THY1","PI16","CLEC3B","TK1","MKI67","TOP2A","ALAS2"), 
    slim.col.label = TRUE, group.label.rot = TRUE,use.scaled = T,group.by="res.1.4",group.cex = 35,cex.row=25,group.order = c(8,14,17,19,10,21,9,11,24,22,23,3,5,16,18,6,20,13,7,0,1,2,15,12,4)
  )

VlnPlot(object = Hs_GA2123_Trachea_v3, features.plot = c("SOX10","PHOX2A", "PHOX2B","CHGA","ASCL1","RET"), nCol = 1,group.by="res.1.4",point.size.use=0.3)
    DoHeatmap(object = Hs_GA2123_Trachea_v3, genes.use = c("EPCAM","TUBB3","SNAP25","ASCL1","CHGA","PHOX2A","PHOX2B","PLP1","MPZ"), 
    slim.col.label = TRUE, group.label.rot = TRUE,use.scaled = T,group.by="res.1.4",group.cex = 35,cex.row=25,cells.use = Hs_GA2123_Trachea_v3@cell.names[Hs_GA2123_Trachea_v3@meta.data$res.1.4 %in% c(10)]
  )
subset the Non-EPCAM cells:
Hs_GA2123_Trachea_v3 <- SetAllIdent(object = Hs_GA2123_Trachea_v3, id = "res.1.4")
Hs_GA2123_Trachea_v3_nonEpcam<-SubsetData(object=Hs_GA2123_Trachea_v3,ident.use=c(0:7,9:13,15,16,18,20:24))
table(Hs_GA2123_Trachea_v3_nonEpcam@meta.data$res.1.4)
colnames(Hs_GA2123_Trachea_v3_nonEpcam@meta.data)[colnames(Hs_GA2123_Trachea_v3_nonEpcam@meta.data) == 'res.0.8'] <- 'orig.0.8'
colnames(Hs_GA2123_Trachea_v3_nonEpcam@meta.data)[colnames(Hs_GA2123_Trachea_v3_nonEpcam@meta.data) == 'res.1.4'] <- 'orig.1.4'
colnames(Hs_GA2123_Trachea_v3_nonEpcam@meta.data)[colnames(Hs_GA2123_Trachea_v3_nonEpcam@meta.data) == 'res.1.2'] <- 'orig.1.2'
Hs_GA2123_Trachea_v3_nonEpcam <- ScaleData(object = Hs_GA2123_Trachea_v3_nonEpcam)
Hs_GA2123_Trachea_v3_nonEpcam <- FindVariableGenes(object = Hs_GA2123_Trachea_v3_nonEpcam, do.plot = TRUE, x.low.cutoff=0.1,x.high.cutoff = Inf, y.cutoff = 0.5)
run PCA on the set of genes
Hs_GA2123_Trachea_v3_nonEpcam <- RunPCA(object = Hs_GA2123_Trachea_v3_nonEpcam, do.print = FALSE)
#PCAPlot(Hs_GA2123_Trachea_v3_nonEpcam)
Hs_GA2123_Trachea_v3_nonEpcam <- ProjectPCA(object = Hs_GA2123_Trachea_v3_nonEpcam, do.print = F)
PCElbowPlot(object = Hs_GA2123_Trachea_v3_nonEpcam)
PCHeatmap(object = Hs_GA2123_Trachea_v3_nonEpcam, pc.use = 1:20, cells.use = 500, do.balanced = TRUE, label.columns = FALSE, num.genes = 25)
n.pcs = 20
res.used <- 0.8

Hs_GA2123_Trachea_v3_nonEpcam <- FindClusters(object = Hs_GA2123_Trachea_v3_nonEpcam, reduction.type = "pca", dims.use = 1:n.pcs, 
    resolution = res.used, print.output = 0, save.SNN = TRUE,force.recalc = T)
Hs_GA2123_Trachea_v3_nonEpcam <- RunTSNE(object = Hs_GA2123_Trachea_v3_nonEpcam, dims.use = 1:n.pcs, seed.use = 10, perplexity=30, dim.embed = 2,k.param=10)
TSNEPlot(object = Hs_GA2123_Trachea_v3_nonEpcam, do.label = T,group.by="res.0.8")
DoHeatmap(object = Hs_GA2123_Trachea_v3_nonEpcam, genes.use = c("ANO1","CFTR","TUBB3","SNAP25","ASCL1","CHGA","PLP1","MPZ","C1QA","FCER1G","CD3G","PECAM1","NRP1","LYVE1","RGS5","NOTCH3","ACTA2","TAGLN","MYH11","COL8A1","COL11A1","SOX9","COL2A1","ACAN","MIA","DCN","LUM","CD34","WNT2","THY1","PI16","CLEC3B","TK1","MKI67","TOP2A","ADIPOQ","CAR3"), 
    slim.col.label = TRUE, group.label.rot = TRUE,use.scaled = T,group.by="res.0.8",group.cex = 35,cex.row=25,group.order = c(9,14,2,17,15,16,13,6,8,5,4,0,3,1,10,11,12,7)
  )

table(Hs_GA2123_Trachea_v3_nonEpcam@meta.data$orig.1.4,Hs_GA2123_Trachea_v3_nonEpcam@meta.data$res.0.8)
library(ggalluvial)
ggplot(data=Hs_GA2123_Trachea_v3_nonEpcam@meta.data,aes(axis1=orig.1.4,axis2=res.0.8))+geom_alluvium(aes(fill=res.0.8))+geom_stratum(width = 1/12, fill = "black", color = "grey") +geom_label(stat = "stratum", label.strata = TRUE)+scale_x_discrete(limits = c("orig.1.4", "res.0.8"), expand = c(.05, .05))
Now subset the basal, ciliated, and secretory:
Hs_GA2123_Trachea_v3 <- SetAllIdent(object = Hs_GA2123_Trachea_v3, id = "res.1.4")
Hs_GA2123_Trachea_v3_sub1<-SubsetData(object=Hs_GA2123_Trachea_v3,ident.use=c(8,14,19))
table(Hs_GA2123_Trachea_v3_sub1@meta.data$res.1.4)
colnames(Hs_GA2123_Trachea_v3_sub1@meta.data)[colnames(Hs_GA2123_Trachea_v3_sub1@meta.data) == 'res.0.8'] <- 'orig.0.8'
colnames(Hs_GA2123_Trachea_v3_sub1@meta.data)[colnames(Hs_GA2123_Trachea_v3_sub1@meta.data) == 'res.1.4'] <- 'orig.1.4'
colnames(Hs_GA2123_Trachea_v3_sub1@meta.data)[colnames(Hs_GA2123_Trachea_v3_sub1@meta.data) == 'res.1.2'] <- 'orig.1.2'
Hs_GA2123_Trachea_v3_sub1 <- ScaleData(object = Hs_GA2123_Trachea_v3_sub1)
Hs_GA2123_Trachea_v3_sub1 <- FindVariableGenes(object = Hs_GA2123_Trachea_v3_sub1, do.plot = TRUE, x.low.cutoff=0.1,x.high.cutoff = Inf, y.cutoff = 0.5)
run PCA on the set of genes
Hs_GA2123_Trachea_v3_sub1 <- RunPCA(object = Hs_GA2123_Trachea_v3_sub1, do.print = FALSE)
#PCAPlot(Hs_GA2123_Trachea_v3_sub1)
Hs_GA2123_Trachea_v3_sub1 <- ProjectPCA(object = Hs_GA2123_Trachea_v3_sub1, do.print = F)
PCElbowPlot(object = Hs_GA2123_Trachea_v3_sub1)
PCHeatmap(object = Hs_GA2123_Trachea_v3_sub1, pc.use = 1:12, cells.use = 500, do.balanced = TRUE, label.columns = FALSE, num.genes = 25)
n.pcs = 16
res.used <- 0.8

Hs_GA2123_Trachea_v3_sub1 <- FindClusters(object = Hs_GA2123_Trachea_v3_sub1, reduction.type = "pca", dims.use = 1:n.pcs, 
    resolution = res.used, print.output = 0, save.SNN = TRUE)
Hs_GA2123_Trachea_v3_sub1 <- RunTSNE(object = Hs_GA2123_Trachea_v3_sub1, dims.use = 1:n.pcs, seed.use = 10, perplexity=30, dim.embed = 2,k.param=10)
TSNEPlot(object = Hs_GA2123_Trachea_v3_sub1, do.label = T)
DoHeatmap(object = Hs_GA2123_Trachea_v3_sub1, genes.use = c("TP63","KRT15","KRT5","KRT17","FOXN4","SHISA8","MCIDAS","SNTN","CDHR3","FOXJ1","KRT4","MUC1","MUC4","MUC20","SERPINB3","GSTP1","ALOX15","CD9","MYH11","ACTG2","MYLK","TAGLN","LTF","AZGP1","DMBT1","FCGBP","CCL28","AQP5","MUC5B","SPDEF","RNASE1","LYZ","TIMP3","OGN","COL14A1","BGN","COL11A1","LUM","ACAN","CFTR","ANO1","TACSTD2"), 
    slim.col.label = TRUE, group.label.rot = TRUE,use.scaled = T,group.by="res.0.8",group.cex = 60,cex.row=30,group.order = c(4,2,6,1,7,5,0,3)
  )

DotPlot(object = Hs_GA2123_Trachea_v3_sub1, cols.use = c("forestgreen","magenta3"),genes.plot = c("TP63","KRT15","KRT5","KRT17","KRT14","SOSTDC1","FOXJ1","FOXN4","SHISA8","MCIDAS","SNTN","CDHR3","CFAP53","CETN2","KRT4","KRT13","MUC1","MUC4","MUC16","MUC20","SERPINB3","MYH11","ACTG2","MYLK","APOE","TAGLN","LTF","AZGP1","DMBT1","KCNN4","FCGBP","LRRC26","KRT7","CCL28","AQP5","MUC5B","SPDEF","LYZ","TIMP3","OGN","COL14A1","BGN","MGP","COL11A1","LUM","ACAN","CFTR","ANO1"),group.by = "ident", x.lab.rot = T,plot.legend = T)
prop.table(table(Hs_GA2123_Trachea_v3_sub1@meta.data$age,Hs_GA2123_Trachea_v3_sub1@meta.data$res.0.8),1)
n.pcs = 16
res.used <- 1.2

Hs_GA2123_Trachea_v3_sub1 <- FindClusters(object = Hs_GA2123_Trachea_v3_sub1, reduction.type = "pca", dims.use = 1:n.pcs, 
    resolution = res.used, print.output = 0, save.SNN = TRUE)
Hs_GA2123_Trachea_v3_sub1 <- RunTSNE(object = Hs_GA2123_Trachea_v3_sub1, dims.use = 1:n.pcs, seed.use = 10, perplexity=30, dim.embed = 2,k.param=10)
TSNEPlot(object = Hs_GA2123_Trachea_v3_sub1, do.label = T,group.by="res.1.2")
DoHeatmap(object = Hs_GA2123_Trachea_v3_sub1, genes.use = c("TP63","KRT15","KRT5","KRT17","KRT14","SOSTDC1","SMOC2","SOX9","FOXN4","SHISA8","MCIDAS","SNTN","CDHR3","FOXJ1","KRT4","MUC1","MUC4","MUC20","SERPINB3","GSTP1","ALOX15","CD9","MYH11","ACTG2","MYLK","TAGLN","LTF","AZGP1","DMBT1","FCGBP","CCL28","AQP5","MUC5B","SPDEF","RNASE1","LYZ","TIMP3","OGN","COL14A1","BGN","COL11A1","LUM","ACAN","CFTR","ANO1","TACSTD2","SERPINB4","SERPINB13","NPPC"), 
    slim.col.label = TRUE, group.label.rot = TRUE,use.scaled = T,group.by="res.1.2",group.cex = 60,cex.row=30,group.order = c(2,4,6,1,7,8,5,0,3)
  )

Hs_v3_sub1_res1.2_c8over2_4<-FindMarkers(Hs_GA2123_Trachea_v3_sub1,ident.1=c(8),ident.2 = c(2,4),only.pos = TRUE)
Hs_v3_sub1_res1.2_c8over2_4
library(plyr)
Hs_GA2123_Trachea_v3_sub1@meta.data$cell_type<-mapvalues(Hs_GA2123_Trachea_v3_sub1@meta.data$res.1.2,from=c("0","1","2","3","4","5","6","7","8"),to=c("Secretory_SMG","Ciliated","Basal_SE","Epcam_ECM","Basal_SE","Myoepithelial","Ciliated_Foxn4","Secretory_SE","Basal_SMG"))
DoHeatmap(object = Hs_GA2123_Trachea_v3_sub1, genes.use = c("FOXN4","PLK4","SHISA8","MCIDAS","SNTN","CDHR3","FOXJ1","TP63","KRT15","KRT5","KRT17","KRT14","SOSTDC1","SMOC2","NPPC","KRT4","MUC1","MUC4","MUC20","SERPINB3","SERPINB4","SERPINB13","GSTP1","ALOX15","CD9","SOX9","LTF","AQP5","LRRC26","AZGP1","DMBT1","FCGBP","CCL28","MUC5B","SPDEF","RNASE1","LYZ","MYH11","ACTG2","MYLK","TAGLN","TIMP3","OGN","COL14A1","BGN","COL11A1","LUM","ACAN","CFTR","ANO1"), 
    slim.col.label = TRUE, group.label.rot = TRUE,use.scaled = T,group.by="cell_type",group.cex = 60,cex.row=30,group.order = c("Ciliated_Foxn4","Ciliated","Basal_SE","Secretory_SE","Basal_SMG","Secretory_SMG","Myoepithelial","Epcam_ECM")
  )

To annotate Hs_GA2123_Trachea_v3:
Hs_v3_type_sub1<-Hs_GA2123_Trachea_v3_sub1@meta.data$cell_type
names(Hs_v3_type_sub1)<-Hs_GA2123_Trachea_v3_sub1@cell.names
Hs_GA2123_Trachea_v3@meta.data$cell_type<-mapvalues(Hs_GA2123_Trachea_v3@meta.data$res.1,from=c("0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22"),to=c("Fibroblast","Fibroblast","Fibroblast","VascularEndothelial","Fibroblast","Fibroblast","CyclingFibroblast","Fibroblast","Chondrocyte","Basal","Schwann/Neural","Fibroblast","Secretory","MesenchymalProgenitor","Stem","Fibroblast","Ciliated","Fibroblast","Chondrocyte","Immune","Muscle","Muscle","LymphaticEndothelial"))
use the Hs_GA2123_Trachea_v3_sub1 information to further annotate Hs_GA2123_Trachea_v3:
Hs_GA2123_Trachea_v3<-AddMetaData(object = Hs_GA2123_Trachea_v3, metadata = Hs_v3_type_sub1, col.name = "specific_type")
table(Hs_GA2123_Trachea_v3@meta.data$specific_type)
Hs_GA2123_Trachea_v3@meta.data$specific_type <- ifelse(is.na(Hs_GA2123_Trachea_v3@meta.data$specific_type), as.character(Hs_GA2123_Trachea_v3@meta.data$cell_type), as.character(Hs_GA2123_Trachea_v3@meta.data$specific_type))
now we have annotation for all cells:
table(Hs_GA2123_Trachea_v3@meta.data$specific_type,Hs_GA2123_Trachea_v3@meta.data$age)
                       
                        GA21wk GA23wk
  Basal_SE                 180    128
  Basal_SMG                 12     18
  Chondrocyte              629     21
  Ciliated                 133     36
  Ciliated_Foxn4            41     25
  CyclingFibroblast        393     86
  Epcam_ECM                112     38
  Fibroblast              4586    773
  Immune                   103     18
  LymphaticEndothelial      48     17
  MesenchymalProgenitor    302     14
  Muscle                   112     65
  Myoepithelial             35     32
  Schwann/Neural           316     89
  Secretory_SE              32     22
  Secretory_SMG            115     61
  Stem                      11    275
  VascularEndothelial      463    352
Hs_GA2123_Trachea_v3<-SetAllIdent(Hs_GA2123_Trachea_v3,id="specific_type")
GA2123wk_v3.specific.type.markers <- FindAllMarkers(object = Hs_GA2123_Trachea_v3, only.pos = TRUE, min.pct = 0.25, thresh.use = 0.25)

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~03m 26s      
   |++                                                | 2 % ~03m 25s      
   |++                                                | 3 % ~03m 27s      
   |+++                                               | 4 % ~03m 22s      
   |+++                                               | 5 % ~03m 20s      
   |++++                                              | 6 % ~03m 18s      
   |++++                                              | 7 % ~03m 22s      
   |+++++                                             | 8 % ~03m 19s      
   |+++++                                             | 9 % ~03m 15s      
   |++++++                                            | 10% ~03m 13s      
   |++++++                                            | 11% ~03m 10s      
   |+++++++                                           | 12% ~03m 10s      
   |+++++++                                           | 13% ~03m 07s      
   |++++++++                                          | 14% ~03m 05s      
   |++++++++                                          | 15% ~03m 02s      
   |+++++++++                                         | 16% ~02m 59s      
   |+++++++++                                         | 17% ~02m 57s      
   |++++++++++                                        | 18% ~02m 55s      
   |++++++++++                                        | 19% ~02m 56s      
   |+++++++++++                                       | 20% ~02m 53s      
   |+++++++++++                                       | 21% ~02m 50s      
   |++++++++++++                                      | 22% ~02m 48s      
   |++++++++++++                                      | 23% ~02m 46s      
   |+++++++++++++                                     | 24% ~02m 43s      
   |+++++++++++++                                     | 25% ~02m 41s      
   |++++++++++++++                                    | 26% ~02m 39s      
   |++++++++++++++                                    | 27% ~02m 37s      
   |+++++++++++++++                                   | 28% ~02m 35s      
   |+++++++++++++++                                   | 29% ~02m 33s      
   |++++++++++++++++                                  | 30% ~02m 31s      
   |++++++++++++++++                                  | 31% ~02m 28s      
   |+++++++++++++++++                                 | 32% ~02m 27s      
   |+++++++++++++++++                                 | 33% ~02m 25s      
   |++++++++++++++++++                                | 34% ~02m 22s      
   |++++++++++++++++++                                | 35% ~02m 20s      
   |+++++++++++++++++++                               | 36% ~02m 20s      
   |+++++++++++++++++++                               | 37% ~02m 18s      
   |++++++++++++++++++++                              | 38% ~02m 15s      
   |++++++++++++++++++++                              | 39% ~02m 13s      
   |+++++++++++++++++++++                             | 40% ~02m 10s      
   |+++++++++++++++++++++                             | 41% ~02m 08s      
   |++++++++++++++++++++++                            | 42% ~02m 05s      
   |++++++++++++++++++++++                            | 43% ~02m 03s      
   |+++++++++++++++++++++++                           | 44% ~02m 01s      
   |+++++++++++++++++++++++                           | 45% ~01m 58s      
   |++++++++++++++++++++++++                          | 46% ~01m 56s      
   |++++++++++++++++++++++++                          | 47% ~01m 54s      
   |+++++++++++++++++++++++++                         | 48% ~01m 52s      
   |+++++++++++++++++++++++++                         | 49% ~01m 49s      
   |++++++++++++++++++++++++++                        | 51% ~01m 47s      
   |++++++++++++++++++++++++++                        | 52% ~01m 45s      
   |+++++++++++++++++++++++++++                       | 53% ~01m 43s      
   |+++++++++++++++++++++++++++                       | 54% ~01m 40s      
   |++++++++++++++++++++++++++++                      | 55% ~01m 39s      
   |++++++++++++++++++++++++++++                      | 56% ~01m 36s      
   |+++++++++++++++++++++++++++++                     | 57% ~01m 34s      
   |+++++++++++++++++++++++++++++                     | 58% ~01m 32s      
   |++++++++++++++++++++++++++++++                    | 59% ~01m 30s      
   |++++++++++++++++++++++++++++++                    | 60% ~01m 28s      
   |+++++++++++++++++++++++++++++++                   | 61% ~01m 25s      
   |+++++++++++++++++++++++++++++++                   | 62% ~01m 23s      
   |++++++++++++++++++++++++++++++++                  | 63% ~01m 21s      
   |++++++++++++++++++++++++++++++++                  | 64% ~01m 19s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~01m 17s      
   |+++++++++++++++++++++++++++++++++                 | 66% ~01m 14s      
   |++++++++++++++++++++++++++++++++++                | 67% ~01m 12s      
   |++++++++++++++++++++++++++++++++++                | 68% ~01m 10s      
   |+++++++++++++++++++++++++++++++++++               | 69% ~01m 08s      
   |+++++++++++++++++++++++++++++++++++               | 70% ~01m 06s      
   |++++++++++++++++++++++++++++++++++++              | 71% ~01m 03s      
   |++++++++++++++++++++++++++++++++++++              | 72% ~01m 01s      
   |+++++++++++++++++++++++++++++++++++++             | 73% ~59s          
   |+++++++++++++++++++++++++++++++++++++             | 74% ~57s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~55s          
   |++++++++++++++++++++++++++++++++++++++            | 76% ~53s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~51s          
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~49s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~46s          
   |++++++++++++++++++++++++++++++++++++++++          | 80% ~44s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~42s          
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~40s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~37s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~35s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~33s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~31s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~29s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~26s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~24s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~22s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~20s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~18s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~16s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~13s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~11s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~09s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~07s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 03m 38s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~03m 19s      
   |++                                                | 2 % ~03m 17s      
   |++                                                | 3 % ~03m 14s      
   |+++                                               | 4 % ~03m 12s      
   |+++                                               | 5 % ~03m 10s      
   |++++                                              | 6 % ~03m 09s      
   |++++                                              | 7 % ~03m 08s      
   |+++++                                             | 8 % ~03m 05s      
   |+++++                                             | 9 % ~03m 03s      
   |++++++                                            | 10% ~03m 05s      
   |++++++                                            | 11% ~03m 02s      
   |+++++++                                           | 12% ~03m 00s      
   |+++++++                                           | 13% ~02m 58s      
   |++++++++                                          | 14% ~02m 56s      
   |++++++++                                          | 15% ~02m 53s      
   |+++++++++                                         | 16% ~02m 51s      
   |+++++++++                                         | 18% ~02m 49s      
   |++++++++++                                        | 19% ~02m 47s      
   |++++++++++                                        | 20% ~02m 45s      
   |+++++++++++                                       | 21% ~02m 43s      
   |+++++++++++                                       | 22% ~02m 41s      
   |++++++++++++                                      | 23% ~02m 39s      
   |++++++++++++                                      | 24% ~02m 38s      
   |+++++++++++++                                     | 25% ~02m 36s      
   |+++++++++++++                                     | 26% ~02m 34s      
   |++++++++++++++                                    | 27% ~02m 32s      
   |++++++++++++++                                    | 28% ~02m 30s      
   |+++++++++++++++                                   | 29% ~02m 27s      
   |+++++++++++++++                                   | 30% ~02m 25s      
   |++++++++++++++++                                  | 31% ~02m 23s      
   |++++++++++++++++                                  | 32% ~02m 21s      
   |+++++++++++++++++                                 | 33% ~02m 21s      
   |++++++++++++++++++                                | 34% ~02m 19s      
   |++++++++++++++++++                                | 35% ~02m 17s      
   |+++++++++++++++++++                               | 36% ~02m 14s      
   |+++++++++++++++++++                               | 37% ~02m 12s      
   |++++++++++++++++++++                              | 38% ~02m 10s      
   |++++++++++++++++++++                              | 39% ~02m 07s      
   |+++++++++++++++++++++                             | 40% ~02m 05s      
   |+++++++++++++++++++++                             | 41% ~02m 05s      
   |++++++++++++++++++++++                            | 42% ~02m 03s      
   |++++++++++++++++++++++                            | 43% ~02m 01s      
   |+++++++++++++++++++++++                           | 44% ~01m 58s      
   |+++++++++++++++++++++++                           | 45% ~01m 56s      
   |++++++++++++++++++++++++                          | 46% ~01m 54s      
   |++++++++++++++++++++++++                          | 47% ~01m 51s      
   |+++++++++++++++++++++++++                         | 48% ~01m 49s      
   |+++++++++++++++++++++++++                         | 49% ~01m 47s      
   |++++++++++++++++++++++++++                        | 51% ~01m 44s      
   |++++++++++++++++++++++++++                        | 52% ~01m 42s      
   |+++++++++++++++++++++++++++                       | 53% ~01m 40s      
   |+++++++++++++++++++++++++++                       | 54% ~01m 38s      
   |++++++++++++++++++++++++++++                      | 55% ~01m 35s      
   |++++++++++++++++++++++++++++                      | 56% ~01m 33s      
   |+++++++++++++++++++++++++++++                     | 57% ~01m 31s      
   |+++++++++++++++++++++++++++++                     | 58% ~01m 29s      
   |++++++++++++++++++++++++++++++                    | 59% ~01m 26s      
   |++++++++++++++++++++++++++++++                    | 60% ~01m 24s      
   |+++++++++++++++++++++++++++++++                   | 61% ~01m 22s      
   |+++++++++++++++++++++++++++++++                   | 62% ~01m 20s      
   |++++++++++++++++++++++++++++++++                  | 63% ~01m 18s      
   |++++++++++++++++++++++++++++++++                  | 64% ~01m 16s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~01m 14s      
   |+++++++++++++++++++++++++++++++++                 | 66% ~01m 11s      
   |++++++++++++++++++++++++++++++++++                | 67% ~01m 09s      
   |+++++++++++++++++++++++++++++++++++               | 68% ~01m 07s      
   |+++++++++++++++++++++++++++++++++++               | 69% ~01m 05s      
   |++++++++++++++++++++++++++++++++++++              | 70% ~01m 03s      
   |++++++++++++++++++++++++++++++++++++              | 71% ~01m 00s      
   |+++++++++++++++++++++++++++++++++++++             | 72% ~58s          
   |+++++++++++++++++++++++++++++++++++++             | 73% ~56s          
   |++++++++++++++++++++++++++++++++++++++            | 74% ~54s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~52s          
   |+++++++++++++++++++++++++++++++++++++++           | 76% ~50s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~48s          
   |++++++++++++++++++++++++++++++++++++++++          | 78% ~45s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~43s          
   |+++++++++++++++++++++++++++++++++++++++++         | 80% ~41s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~39s          
   |++++++++++++++++++++++++++++++++++++++++++        | 82% ~37s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~35s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~32s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~30s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~28s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~26s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~24s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~22s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~19s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~17s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~15s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~13s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~11s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~09s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~07s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 03m 32s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~02m 37s      
   |++                                                | 2 % ~02m 37s      
   |++                                                | 3 % ~02m 34s      
   |+++                                               | 4 % ~02m 34s      
   |+++                                               | 5 % ~02m 32s      
   |++++                                              | 7 % ~02m 30s      
   |++++                                              | 8 % ~02m 28s      
   |+++++                                             | 9 % ~02m 27s      
   |+++++                                             | 10% ~02m 25s      
   |++++++                                            | 11% ~02m 24s      
   |++++++                                            | 12% ~02m 22s      
   |+++++++                                           | 13% ~02m 21s      
   |++++++++                                          | 14% ~02m 22s      
   |++++++++                                          | 15% ~02m 20s      
   |+++++++++                                         | 16% ~02m 18s      
   |+++++++++                                         | 17% ~02m 16s      
   |++++++++++                                        | 18% ~02m 15s      
   |++++++++++                                        | 20% ~02m 13s      
   |+++++++++++                                       | 21% ~02m 11s      
   |+++++++++++                                       | 22% ~02m 09s      
   |++++++++++++                                      | 23% ~02m 07s      
   |++++++++++++                                      | 24% ~02m 06s      
   |+++++++++++++                                     | 25% ~02m 04s      
   |++++++++++++++                                    | 26% ~02m 02s      
   |++++++++++++++                                    | 27% ~02m 01s      
   |+++++++++++++++                                   | 28% ~01m 59s      
   |+++++++++++++++                                   | 29% ~01m 57s      
   |++++++++++++++++                                  | 30% ~01m 55s      
   |++++++++++++++++                                  | 32% ~01m 55s      
   |+++++++++++++++++                                 | 33% ~01m 53s      
   |+++++++++++++++++                                 | 34% ~01m 51s      
   |++++++++++++++++++                                | 35% ~01m 49s      
   |++++++++++++++++++                                | 36% ~01m 47s      
   |+++++++++++++++++++                               | 37% ~01m 46s      
   |++++++++++++++++++++                              | 38% ~01m 44s      
   |++++++++++++++++++++                              | 39% ~01m 42s      
   |+++++++++++++++++++++                             | 40% ~01m 40s      
   |+++++++++++++++++++++                             | 41% ~01m 40s      
   |++++++++++++++++++++++                            | 42% ~01m 38s      
   |++++++++++++++++++++++                            | 43% ~01m 36s      
   |+++++++++++++++++++++++                           | 45% ~01m 34s      
   |+++++++++++++++++++++++                           | 46% ~01m 32s      
   |++++++++++++++++++++++++                          | 47% ~01m 31s      
   |++++++++++++++++++++++++                          | 48% ~01m 29s      
   |+++++++++++++++++++++++++                         | 49% ~01m 27s      
   |+++++++++++++++++++++++++                         | 50% ~01m 27s      
   |++++++++++++++++++++++++++                        | 51% ~01m 25s      
   |+++++++++++++++++++++++++++                       | 52% ~01m 23s      
   |+++++++++++++++++++++++++++                       | 53% ~01m 21s      
   |++++++++++++++++++++++++++++                      | 54% ~01m 19s      
   |++++++++++++++++++++++++++++                      | 55% ~01m 17s      
   |+++++++++++++++++++++++++++++                     | 57% ~01m 15s      
   |+++++++++++++++++++++++++++++                     | 58% ~01m 13s      
   |++++++++++++++++++++++++++++++                    | 59% ~01m 11s      
   |++++++++++++++++++++++++++++++                    | 60% ~01m 09s      
   |+++++++++++++++++++++++++++++++                   | 61% ~01m 07s      
   |+++++++++++++++++++++++++++++++                   | 62% ~01m 05s      
   |++++++++++++++++++++++++++++++++                  | 63% ~01m 03s      
   |+++++++++++++++++++++++++++++++++                 | 64% ~01m 01s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~59s          
   |++++++++++++++++++++++++++++++++++                | 66% ~58s          
   |++++++++++++++++++++++++++++++++++                | 67% ~56s          
   |+++++++++++++++++++++++++++++++++++               | 68% ~54s          
   |+++++++++++++++++++++++++++++++++++               | 70% ~52s          
   |++++++++++++++++++++++++++++++++++++              | 71% ~50s          
   |++++++++++++++++++++++++++++++++++++              | 72% ~48s          
   |+++++++++++++++++++++++++++++++++++++             | 73% ~46s          
   |+++++++++++++++++++++++++++++++++++++             | 74% ~45s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~43s          
   |+++++++++++++++++++++++++++++++++++++++           | 76% ~41s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~39s          
   |++++++++++++++++++++++++++++++++++++++++          | 78% ~37s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~35s          
   |+++++++++++++++++++++++++++++++++++++++++         | 80% ~33s          
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~32s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~30s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~28s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~26s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~24s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~22s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~20s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~19s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~17s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~15s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~13s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~11s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~09s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~07s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~06s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 02m 50s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~08m 04s      
   |+                                                 | 2 % ~08m 08s      
   |++                                                | 3 % ~08m 03s      
   |++                                                | 4 % ~07m 59s      
   |+++                                               | 5 % ~08m 02s      
   |+++                                               | 6 % ~07m 56s      
   |++++                                              | 7 % ~07m 51s      
   |++++                                              | 8 % ~07m 46s      
   |+++++                                             | 9 % ~07m 41s      
   |+++++                                             | 10% ~07m 35s      
   |++++++                                            | 11% ~07m 31s      
   |++++++                                            | 12% ~07m 29s      
   |+++++++                                           | 13% ~07m 24s      
   |+++++++                                           | 14% ~07m 19s      
   |++++++++                                          | 15% ~07m 14s      
   |++++++++                                          | 16% ~07m 09s      
   |+++++++++                                         | 17% ~07m 09s      
   |+++++++++                                         | 18% ~07m 04s      
   |++++++++++                                        | 19% ~06m 59s      
   |++++++++++                                        | 20% ~06m 53s      
   |+++++++++++                                       | 21% ~06m 54s      
   |+++++++++++                                       | 22% ~06m 48s      
   |++++++++++++                                      | 23% ~06m 42s      
   |++++++++++++                                      | 24% ~06m 36s      
   |+++++++++++++                                     | 25% ~06m 30s      
   |+++++++++++++                                     | 26% ~06m 25s      
   |++++++++++++++                                    | 27% ~06m 19s      
   |++++++++++++++                                    | 28% ~06m 13s      
   |+++++++++++++++                                   | 29% ~06m 08s      
   |+++++++++++++++                                   | 30% ~06m 04s      
   |++++++++++++++++                                  | 31% ~05m 58s      
   |++++++++++++++++                                  | 32% ~05m 53s      
   |+++++++++++++++++                                 | 33% ~05m 47s      
   |+++++++++++++++++                                | 34% ~05m 42s      
   |++++++++++++++++++                                | 35% ~05m 36s      
   |++++++++++++++++++                                | 36% ~05m 32s      
   |+++++++++++++++++++                               | 37% ~05m 27s      
   |+++++++++++++++++++                               | 38% ~05m 21s      
   |++++++++++++++++++++                              | 39% ~05m 16s      
   |++++++++++++++++++++                              | 40% ~05m 13s      
   |+++++++++++++++++++++                             | 41% ~05m 08s      
   |+++++++++++++++++++++                             | 42% ~05m 02s      
   |++++++++++++++++++++++                            | 43% ~04m 56s      
   |++++++++++++++++++++++                            | 44% ~04m 51s      
   |+++++++++++++++++++++++                           | 45% ~04m 45s      
   |+++++++++++++++++++++++                           | 46% ~04m 40s      
   |++++++++++++++++++++++++                          | 47% ~04m 35s      
   |++++++++++++++++++++++++                          | 48% ~04m 30s      
   |+++++++++++++++++++++++++                         | 49% ~04m 25s      
   |+++++++++++++++++++++++++                         | 50% ~04m 19s      
   |++++++++++++++++++++++++++                        | 51% ~04m 14s      
   |++++++++++++++++++++++++++                        | 52% ~04m 09s      
   |+++++++++++++++++++++++++++                       | 53% ~04m 04s      
   |+++++++++++++++++++++++++++                       | 54% ~03m 59s      
   |++++++++++++++++++++++++++++                      | 55% ~03m 54s      
   |++++++++++++++++++++++++++++                     | 56% ~03m 48s      
   |+++++++++++++++++++++++++++++                     | 57% ~03m 43s      
   |+++++++++++++++++++++++++++++                     | 58% ~03m 39s      
   |++++++++++++++++++++++++++++++                    | 59% ~03m 33s      
   |++++++++++++++++++++++++++++++                    | 60% ~03m 28s      
   |+++++++++++++++++++++++++++++++                   | 61% ~03m 23s      
   |+++++++++++++++++++++++++++++++                   | 62% ~03m 19s      
   |++++++++++++++++++++++++++++++++                  | 63% ~03m 13s      
   |++++++++++++++++++++++++++++++++                  | 64% ~03m 08s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~03m 03s      
   |+++++++++++++++++++++++++++++++++                 | 66% ~02m 57s      
   |++++++++++++++++++++++++++++++++++                | 67% ~02m 52s      
   |++++++++++++++++++++++++++++++++++               | 68% ~02m 47s      
   |+++++++++++++++++++++++++++++++++++               | 69% ~02m 41s      
   |+++++++++++++++++++++++++++++++++++               | 70% ~02m 36s      
   |++++++++++++++++++++++++++++++++++++              | 71% ~02m 31s      
   |++++++++++++++++++++++++++++++++++++              | 72% ~02m 26s      
   |+++++++++++++++++++++++++++++++++++++             | 73% ~02m 21s      
   |+++++++++++++++++++++++++++++++++++++             | 74% ~02m 15s      
   |++++++++++++++++++++++++++++++++++++++            | 75% ~02m 10s      
   |++++++++++++++++++++++++++++++++++++++            | 76% ~02m 05s      
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~01m 60s      
   |+++++++++++++++++++++++++++++++++++++++          | 78% ~01m 55s      
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~01m 49s      
   |++++++++++++++++++++++++++++++++++++++++         | 80% ~01m 44s      
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01m 39s      
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~01m 34s      
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01m 29s      
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~01m 23s      
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01m 18s      
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01m 13s      
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01m 08s      
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~01m 03s      
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~57s          
   |+++++++++++++++++++++++++++++++++++++++++++++    | 90% ~52s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~47s          
   |++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~42s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~37s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~31s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~26s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~21s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~16s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~10s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~05s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 08m 41s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~05m 41s      
   |++                                                | 2 % ~05m 40s      
   |++                                                | 3 % ~05m 37s      
   |+++                                               | 4 % ~05m 33s      
   |+++                                               | 5 % ~05m 29s      
   |++++                                              | 6 % ~05m 26s      
   |++++                                              | 7 % ~05m 23s      
   |+++++                                             | 8 % ~05m 20s      
   |+++++                                             | 9 % ~05m 21s      
   |++++++                                            | 10% ~05m 16s      
   |++++++                                            | 11% ~05m 13s      
   |+++++++                                           | 12% ~05m 09s      
   |+++++++                                           | 13% ~05m 06s      
   |++++++++                                          | 14% ~05m 03s      
   |++++++++                                          | 15% ~04m 59s      
   |+++++++++                                         | 16% ~04m 56s      
   |+++++++++                                         | 17% ~04m 53s      
   |++++++++++                                        | 18% ~04m 52s      
   |++++++++++                                        | 19% ~04m 48s      
   |+++++++++++                                       | 20% ~04m 44s      
   |+++++++++++                                       | 21% ~04m 40s      
   |++++++++++++                                      | 22% ~04m 37s      
   |++++++++++++                                      | 23% ~04m 33s      
   |+++++++++++++                                     | 24% ~04m 30s      
   |+++++++++++++                                     | 26% ~04m 27s      
   |++++++++++++++                                    | 27% ~04m 24s      
   |++++++++++++++                                    | 28% ~04m 20s      
   |+++++++++++++++                                   | 29% ~04m 16s      
   |+++++++++++++++                                   | 30% ~04m 13s      
   |++++++++++++++++                                  | 31% ~04m 12s      
   |++++++++++++++++                                  | 32% ~04m 08s      
   |+++++++++++++++++                                 | 33% ~04m 04s      
   |+++++++++++++++++                                 | 34% ~04m 01s      
   |++++++++++++++++++                                | 35% ~04m 00s      
   |++++++++++++++++++                                | 36% ~03m 56s      
   |+++++++++++++++++++                               | 37% ~03m 52s      
   |+++++++++++++++++++                               | 38% ~03m 48s      
   |++++++++++++++++++++                              | 39% ~03m 44s      
   |++++++++++++++++++++                              | 40% ~03m 40s      
   |+++++++++++++++++++++                             | 41% ~03m 36s      
   |+++++++++++++++++++++                             | 42% ~03m 32s      
   |++++++++++++++++++++++                            | 43% ~03m 28s      
   |++++++++++++++++++++++                            | 44% ~03m 24s      
   |+++++++++++++++++++++++                           | 45% ~03m 20s      
   |+++++++++++++++++++++++                           | 46% ~03m 16s      
   |++++++++++++++++++++++++                          | 47% ~03m 13s      
   |++++++++++++++++++++++++                          | 48% ~03m 10s      
   |+++++++++++++++++++++++++                         | 49% ~03m 06s      
   |+++++++++++++++++++++++++                         | 50% ~03m 02s      
   |++++++++++++++++++++++++++                        | 51% ~02m 58s      
   |+++++++++++++++++++++++++++                       | 52% ~02m 55s      
   |+++++++++++++++++++++++++++                       | 53% ~02m 51s      
   |++++++++++++++++++++++++++++                      | 54% ~02m 47s      
   |++++++++++++++++++++++++++++                      | 55% ~02m 43s      
   |+++++++++++++++++++++++++++++                     | 56% ~02m 40s      
   |+++++++++++++++++++++++++++++                     | 57% ~02m 36s      
   |++++++++++++++++++++++++++++++                    | 58% ~02m 32s      
   |++++++++++++++++++++++++++++++                    | 59% ~02m 29s      
   |+++++++++++++++++++++++++++++++                   | 60% ~02m 25s      
   |+++++++++++++++++++++++++++++++                   | 61% ~02m 21s      
   |++++++++++++++++++++++++++++++++                  | 62% ~02m 18s      
   |++++++++++++++++++++++++++++++++                  | 63% ~02m 14s      
   |+++++++++++++++++++++++++++++++++                 | 64% ~02m 10s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~02m 06s      
   |++++++++++++++++++++++++++++++++++                | 66% ~02m 04s      
   |++++++++++++++++++++++++++++++++++                | 67% ~01m 60s      
   |+++++++++++++++++++++++++++++++++++               | 68% ~01m 56s      
   |+++++++++++++++++++++++++++++++++++               | 69% ~01m 52s      
   |++++++++++++++++++++++++++++++++++++              | 70% ~01m 48s      
   |++++++++++++++++++++++++++++++++++++              | 71% ~01m 44s      
   |+++++++++++++++++++++++++++++++++++++             | 72% ~01m 41s      
   |+++++++++++++++++++++++++++++++++++++             | 73% ~01m 37s      
   |++++++++++++++++++++++++++++++++++++++            | 74% ~01m 33s      
   |++++++++++++++++++++++++++++++++++++++            | 76% ~01m 29s      
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~01m 26s      
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~01m 22s      
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~01m 18s      
   |++++++++++++++++++++++++++++++++++++++++          | 80% ~01m 15s      
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01m 11s      
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~01m 07s      
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01m 03s      
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~60s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~56s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~52s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~48s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~45s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~41s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~37s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~34s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~30s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~26s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~22s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~19s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~15s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~11s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~07s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~04s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 06m 04s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~01m 33s      
   |++                                                | 2 % ~01m 31s      
   |++                                                | 3 % ~01m 28s      
   |+++                                               | 4 % ~01m 27s      
   |+++                                               | 6 % ~01m 25s      
   |++++                                              | 7 % ~01m 25s      
   |++++                                              | 8 % ~01m 24s      
   |+++++                                             | 9 % ~01m 22s      
   |++++++                                            | 10% ~01m 21s      
   |++++++                                            | 11% ~01m 20s      
   |+++++++                                           | 12% ~01m 19s      
   |+++++++                                           | 13% ~01m 18s      
   |++++++++                                          | 15% ~01m 17s      
   |++++++++                                          | 16% ~01m 16s      
   |+++++++++                                         | 17% ~01m 15s      
   |+++++++++                                         | 18% ~01m 14s      
   |++++++++++                                        | 19% ~01m 13s      
   |+++++++++++                                       | 20% ~01m 12s      
   |+++++++++++                                       | 21% ~01m 11s      
   |++++++++++++                                      | 22% ~01m 10s      
   |++++++++++++                                      | 24% ~01m 09s      
   |+++++++++++++                                     | 25% ~01m 08s      
   |+++++++++++++                                     | 26% ~01m 07s      
   |++++++++++++++                                    | 27% ~01m 06s      
   |+++++++++++++++                                   | 28% ~01m 06s      
   |+++++++++++++++                                   | 29% ~01m 05s      
   |++++++++++++++++                                  | 30% ~01m 04s      
   |++++++++++++++++                                  | 31% ~01m 03s      
   |+++++++++++++++++                                 | 33% ~01m 02s      
   |+++++++++++++++++                                 | 34% ~01m 01s      
   |++++++++++++++++++                                | 35% ~60s          
   |++++++++++++++++++                                | 36% ~59s          
   |+++++++++++++++++++                               | 37% ~58s          
   |++++++++++++++++++++                              | 38% ~57s          
   |++++++++++++++++++++                              | 39% ~56s          
   |+++++++++++++++++++++                             | 40% ~55s          
   |+++++++++++++++++++++                             | 42% ~54s          
   |++++++++++++++++++++++                            | 43% ~53s          
   |++++++++++++++++++++++                            | 44% ~52s          
   |+++++++++++++++++++++++                           | 45% ~51s          
   |++++++++++++++++++++++++                          | 46% ~50s          
   |++++++++++++++++++++++++                          | 47% ~49s          
   |+++++++++++++++++++++++++                         | 48% ~48s          
   |+++++++++++++++++++++++++                         | 49% ~47s          
   |++++++++++++++++++++++++++                        | 51% ~46s          
   |++++++++++++++++++++++++++                        | 52% ~45s          
   |+++++++++++++++++++++++++++                       | 53% ~44s          
   |+++++++++++++++++++++++++++                       | 54% ~43s          
   |++++++++++++++++++++++++++++                      | 55% ~42s          
   |+++++++++++++++++++++++++++++                     | 56% ~41s          
   |+++++++++++++++++++++++++++++                     | 57% ~40s          
   |++++++++++++++++++++++++++++++                    | 58% ~39s          
   |++++++++++++++++++++++++++++++                    | 60% ~38s          
   |+++++++++++++++++++++++++++++++                   | 61% ~37s          
   |+++++++++++++++++++++++++++++++                   | 62% ~36s          
   |++++++++++++++++++++++++++++++++                  | 63% ~35s          
   |+++++++++++++++++++++++++++++++++                 | 64% ~34s          
   |+++++++++++++++++++++++++++++++++                 | 65% ~33s          
   |++++++++++++++++++++++++++++++++++                | 66% ~32s          
   |++++++++++++++++++++++++++++++++++                | 67% ~31s          
   |+++++++++++++++++++++++++++++++++++               | 69% ~30s          
   |+++++++++++++++++++++++++++++++++++               | 70% ~29s          
   |++++++++++++++++++++++++++++++++++++              | 71% ~27s          
   |++++++++++++++++++++++++++++++++++++              | 72% ~26s          
   |+++++++++++++++++++++++++++++++++++++             | 73% ~25s          
   |++++++++++++++++++++++++++++++++++++++            | 74% ~24s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~23s          
   |+++++++++++++++++++++++++++++++++++++++           | 76% ~22s          
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~21s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~20s          
   |++++++++++++++++++++++++++++++++++++++++          | 80% ~19s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~18s          
   |++++++++++++++++++++++++++++++++++++++++++        | 82% ~17s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~16s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~15s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~14s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~13s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~12s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~11s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~10s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~09s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~08s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~06s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~05s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~04s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~03s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~02s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 01m 35s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~01m 02s      
   |++                                                | 2 % ~01m 01s      
   |++                                                | 3 % ~60s          
   |+++                                               | 5 % ~59s          
   |+++                                               | 6 % ~58s          
   |++++                                              | 7 % ~58s          
   |+++++                                             | 8 % ~57s          
   |+++++                                             | 9 % ~56s          
   |++++++                                            | 10% ~56s          
   |++++++                                            | 11% ~55s          
   |+++++++                                           | 13% ~54s          
   |+++++++                                           | 14% ~53s          
   |++++++++                                          | 15% ~53s          
   |+++++++++                                         | 16% ~52s          
   |+++++++++                                         | 17% ~51s          
   |++++++++++                                        | 18% ~50s          
   |++++++++++                                        | 20% ~50s          
   |+++++++++++                                       | 21% ~49s          
   |+++++++++++                                       | 22% ~48s          
   |++++++++++++                                      | 23% ~48s          
   |+++++++++++++                                     | 24% ~47s          
   |+++++++++++++                                     | 25% ~46s          
   |++++++++++++++                                    | 26% ~45s          
   |++++++++++++++                                    | 28% ~46s          
   |+++++++++++++++                                   | 29% ~45s          
   |+++++++++++++++                                   | 30% ~44s          
   |++++++++++++++++                                  | 31% ~43s          
   |+++++++++++++++++                                 | 32% ~43s          
   |+++++++++++++++++                                 | 33% ~42s          
   |++++++++++++++++++                                | 34% ~41s          
   |++++++++++++++++++                                | 36% ~41s          
   |+++++++++++++++++++                               | 37% ~40s          
   |+++++++++++++++++++                               | 38% ~39s          
   |++++++++++++++++++++                              | 39% ~38s          
   |+++++++++++++++++++++                             | 40% ~38s          
   |+++++++++++++++++++++                             | 41% ~37s          
   |++++++++++++++++++++++                            | 43% ~36s          
   |++++++++++++++++++++++                            | 44% ~36s          
   |+++++++++++++++++++++++                           | 45% ~35s          
   |+++++++++++++++++++++++                           | 46% ~34s          
   |++++++++++++++++++++++++                          | 47% ~33s          
   |+++++++++++++++++++++++++                         | 48% ~33s          
   |+++++++++++++++++++++++++                         | 49% ~32s          
   |++++++++++++++++++++++++++                        | 51% ~31s          
   |++++++++++++++++++++++++++                        | 52% ~31s          
   |+++++++++++++++++++++++++++                       | 53% ~30s          
   |++++++++++++++++++++++++++++                      | 54% ~29s          
   |++++++++++++++++++++++++++++                      | 55% ~28s          
   |+++++++++++++++++++++++++++++                     | 56% ~28s          
   |+++++++++++++++++++++++++++++                     | 57% ~27s          
   |++++++++++++++++++++++++++++++                    | 59% ~26s          
   |++++++++++++++++++++++++++++++                    | 60% ~26s          
   |+++++++++++++++++++++++++++++++                   | 61% ~25s          
   |++++++++++++++++++++++++++++++++                  | 62% ~24s          
   |++++++++++++++++++++++++++++++++                  | 63% ~23s          
   |+++++++++++++++++++++++++++++++++                 | 64% ~23s          
   |+++++++++++++++++++++++++++++++++                 | 66% ~22s          
   |++++++++++++++++++++++++++++++++++                | 67% ~21s          
   |++++++++++++++++++++++++++++++++++                | 68% ~20s          
   |+++++++++++++++++++++++++++++++++++               | 69% ~20s          
   |++++++++++++++++++++++++++++++++++++              | 70% ~19s          
   |++++++++++++++++++++++++++++++++++++              | 71% ~18s          
   |+++++++++++++++++++++++++++++++++++++             | 72% ~18s          
   |+++++++++++++++++++++++++++++++++++++             | 74% ~17s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~16s          
   |++++++++++++++++++++++++++++++++++++++            | 76% ~16s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~15s          
   |++++++++++++++++++++++++++++++++++++++++          | 78% ~14s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~13s          
   |+++++++++++++++++++++++++++++++++++++++++         | 80% ~13s          
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~12s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~11s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~10s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~10s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~09s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~08s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~07s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~07s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~06s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~05s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~04s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~04s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~03s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~02s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 01m 04s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~01m 32s      
   |++                                                | 2 % ~01m 32s      
   |++                                                | 3 % ~01m 31s      
   |+++                                               | 4 % ~01m 29s      
   |+++                                               | 6 % ~01m 28s      
   |++++                                              | 7 % ~01m 28s      
   |++++                                              | 8 % ~01m 26s      
   |+++++                                             | 9 % ~01m 25s      
   |+++++                                             | 10% ~01m 24s      
   |++++++                                            | 11% ~01m 23s      
   |+++++++                                           | 12% ~01m 22s      
   |+++++++                                           | 13% ~01m 21s      
   |++++++++                                          | 14% ~01m 20s      
   |++++++++                                          | 16% ~01m 19s      
   |+++++++++                                         | 17% ~01m 18s      
   |+++++++++                                         | 18% ~01m 17s      
   |++++++++++                                        | 19% ~01m 16s      
   |++++++++++                                        | 20% ~01m 16s      
   |+++++++++++                                       | 21% ~01m 15s      
   |++++++++++++                                      | 22% ~01m 14s      
   |++++++++++++                                      | 23% ~01m 13s      
   |+++++++++++++                                     | 24% ~01m 12s      
   |+++++++++++++                                     | 26% ~01m 11s      
   |++++++++++++++                                    | 27% ~01m 10s      
   |++++++++++++++                                    | 28% ~01m 08s      
   |+++++++++++++++                                   | 29% ~01m 07s      
   |+++++++++++++++                                   | 30% ~01m 06s      
   |++++++++++++++++                                  | 31% ~01m 05s      
   |+++++++++++++++++                                 | 32% ~01m 04s      
   |+++++++++++++++++                                 | 33% ~01m 03s      
   |++++++++++++++++++                                | 34% ~01m 02s      
   |++++++++++++++++++                                | 36% ~01m 01s      
   |+++++++++++++++++++                               | 37% ~01m 00s      
   |+++++++++++++++++++                               | 38% ~59s          
   |++++++++++++++++++++                              | 39% ~58s          
   |++++++++++++++++++++                              | 40% ~57s          
   |+++++++++++++++++++++                             | 41% ~56s          
   |++++++++++++++++++++++                            | 42% ~55s          
   |++++++++++++++++++++++                            | 43% ~54s          
   |+++++++++++++++++++++++                           | 44% ~53s          
   |+++++++++++++++++++++++                           | 46% ~52s          
   |++++++++++++++++++++++++                          | 47% ~51s          
   |++++++++++++++++++++++++                          | 48% ~50s          
   |+++++++++++++++++++++++++                         | 49% ~49s          
   |+++++++++++++++++++++++++                         | 50% ~48s          
   |++++++++++++++++++++++++++                        | 51% ~47s          
   |+++++++++++++++++++++++++++                       | 52% ~45s          
   |+++++++++++++++++++++++++++                       | 53% ~44s          
   |++++++++++++++++++++++++++++                      | 54% ~44s          
   |++++++++++++++++++++++++++++                      | 56% ~43s          
   |+++++++++++++++++++++++++++++                     | 57% ~42s          
   |+++++++++++++++++++++++++++++                     | 58% ~41s          
   |++++++++++++++++++++++++++++++                    | 59% ~40s          
   |++++++++++++++++++++++++++++++                    | 60% ~39s          
   |+++++++++++++++++++++++++++++++                   | 61% ~37s          
   |++++++++++++++++++++++++++++++++                  | 62% ~36s          
   |++++++++++++++++++++++++++++++++                  | 63% ~35s          
   |+++++++++++++++++++++++++++++++++                 | 64% ~34s          
   |+++++++++++++++++++++++++++++++++                 | 66% ~33s          
   |++++++++++++++++++++++++++++++++++                | 67% ~32s          
   |++++++++++++++++++++++++++++++++++                | 68% ~31s          
   |+++++++++++++++++++++++++++++++++++               | 69% ~30s          
   |+++++++++++++++++++++++++++++++++++               | 70% ~29s          
   |++++++++++++++++++++++++++++++++++++              | 71% ~28s          
   |+++++++++++++++++++++++++++++++++++++             | 72% ~27s          
   |+++++++++++++++++++++++++++++++++++++             | 73% ~26s          
   |++++++++++++++++++++++++++++++++++++++            | 74% ~25s          
   |++++++++++++++++++++++++++++++++++++++            | 76% ~24s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~23s          
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~21s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~20s          
   |++++++++++++++++++++++++++++++++++++++++         | 80% ~19s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~18s          
   |++++++++++++++++++++++++++++++++++++++++++        | 82% ~17s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~16s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~15s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~14s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~13s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~12s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~11s          
   |+++++++++++++++++++++++++++++++++++++++++++++    | 90% ~10s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~09s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~08s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~06s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~05s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~04s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~03s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~02s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 01m 38s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~04m 29s      
   |++                                                | 2 % ~04m 24s      
   |++                                                | 3 % ~04m 21s      
   |+++                                               | 4 % ~04m 20s      
   |+++                                               | 5 % ~04m 17s      
   |++++                                              | 6 % ~04m 16s      
   |++++                                              | 7 % ~04m 12s      
   |+++++                                             | 8 % ~04m 10s      
   |+++++                                             | 9 % ~04m 07s      
   |++++++                                            | 10% ~04m 05s      
   |++++++                                            | 11% ~04m 02s      
   |+++++++                                           | 12% ~03m 59s      
   |+++++++                                           | 13% ~03m 57s      
   |++++++++                                          | 14% ~03m 58s      
   |++++++++                                          | 15% ~03m 55s      
   |+++++++++                                         | 16% ~03m 53s      
   |+++++++++                                         | 17% ~03m 50s      
   |++++++++++                                        | 18% ~03m 47s      
   |++++++++++                                        | 19% ~03m 45s      
   |+++++++++++                                       | 20% ~03m 42s      
   |+++++++++++                                       | 21% ~03m 39s      
   |++++++++++++                                      | 22% ~03m 36s      
   |++++++++++++                                      | 23% ~03m 33s      
   |+++++++++++++                                     | 24% ~03m 32s      
   |+++++++++++++                                     | 25% ~03m 29s      
   |++++++++++++++                                    | 26% ~03m 27s      
   |++++++++++++++                                    | 27% ~03m 24s      
   |+++++++++++++++                                   | 28% ~03m 21s      
   |+++++++++++++++                                   | 29% ~03m 18s      
   |++++++++++++++++                                  | 30% ~03m 15s      
   |++++++++++++++++                                  | 31% ~03m 17s      
   |+++++++++++++++++                                 | 32% ~03m 13s      
   |+++++++++++++++++                                 | 33% ~03m 10s      
   |++++++++++++++++++                                | 34% ~03m 07s      
   |++++++++++++++++++                                | 35% ~03m 04s      
   |+++++++++++++++++++                               | 36% ~03m 01s      
   |+++++++++++++++++++                               | 37% ~02m 58s      
   |++++++++++++++++++++                              | 38% ~02m 55s      
   |++++++++++++++++++++                              | 39% ~02m 52s      
   |+++++++++++++++++++++                             | 40% ~02m 49s      
   |+++++++++++++++++++++                             | 41% ~02m 46s      
   |++++++++++++++++++++++                            | 42% ~02m 43s      
   |++++++++++++++++++++++                            | 43% ~02m 40s      
   |+++++++++++++++++++++++                           | 44% ~02m 37s      
   |+++++++++++++++++++++++                           | 45% ~02m 35s      
   |++++++++++++++++++++++++                          | 46% ~02m 32s      
   |++++++++++++++++++++++++                          | 47% ~02m 29s      
   |+++++++++++++++++++++++++                         | 48% ~02m 26s      
   |+++++++++++++++++++++++++                         | 49% ~02m 23s      
   |++++++++++++++++++++++++++                        | 51% ~02m 20s      
   |++++++++++++++++++++++++++                        | 52% ~02m 17s      
   |+++++++++++++++++++++++++++                       | 53% ~02m 14s      
   |+++++++++++++++++++++++++++                       | 54% ~02m 12s      
   |++++++++++++++++++++++++++++                      | 55% ~02m 09s      
   |++++++++++++++++++++++++++++                      | 56% ~02m 06s      
   |+++++++++++++++++++++++++++++                     | 57% ~02m 03s      
   |+++++++++++++++++++++++++++++                     | 58% ~02m 00s      
   |++++++++++++++++++++++++++++++                    | 59% ~01m 58s      
   |++++++++++++++++++++++++++++++                    | 60% ~01m 55s      
   |+++++++++++++++++++++++++++++++                   | 61% ~01m 52s      
   |+++++++++++++++++++++++++++++++                   | 62% ~01m 49s      
   |++++++++++++++++++++++++++++++++                  | 63% ~01m 47s      
   |++++++++++++++++++++++++++++++++                  | 64% ~01m 44s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~01m 41s      
   |+++++++++++++++++++++++++++++++++                 | 66% ~01m 38s      
   |++++++++++++++++++++++++++++++++++                | 67% ~01m 35s      
   |++++++++++++++++++++++++++++++++++                | 68% ~01m 32s      
   |+++++++++++++++++++++++++++++++++++               | 69% ~01m 29s      
   |+++++++++++++++++++++++++++++++++++               | 70% ~01m 27s      
   |++++++++++++++++++++++++++++++++++++              | 71% ~01m 24s      
   |++++++++++++++++++++++++++++++++++++              | 72% ~01m 21s      
   |+++++++++++++++++++++++++++++++++++++             | 73% ~01m 18s      
   |+++++++++++++++++++++++++++++++++++++             | 74% ~01m 15s      
   |++++++++++++++++++++++++++++++++++++++            | 75% ~01m 12s      
   |++++++++++++++++++++++++++++++++++++++            | 76% ~01m 09s      
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~01m 06s      
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~01m 03s      
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~01m 00s      
   |++++++++++++++++++++++++++++++++++++++++          | 80% ~58s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~55s          
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~52s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~49s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~46s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~43s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~40s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~37s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~35s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~32s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~29s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~26s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~23s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~20s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~17s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~14s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~12s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~09s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~06s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~03s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 04m 43s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~04m 26s      
   |++                                                | 2 % ~04m 26s      
   |++                                                | 3 % ~04m 23s      
   |+++                                               | 4 % ~04m 20s      
   |+++                                               | 5 % ~04m 17s      
   |++++                                              | 6 % ~04m 15s      
   |++++                                              | 7 % ~04m 13s      
   |+++++                                             | 8 % ~04m 10s      
   |+++++                                             | 9 % ~04m 07s      
   |++++++                                            | 10% ~04m 05s      
   |++++++                                            | 11% ~04m 02s      
   |+++++++                                           | 12% ~03m 59s      
   |+++++++                                           | 13% ~03m 57s      
   |++++++++                                          | 14% ~03m 57s      
   |++++++++                                          | 15% ~03m 55s      
   |+++++++++                                         | 16% ~03m 52s      
   |+++++++++                                         | 17% ~03m 49s      
   |++++++++++                                        | 18% ~03m 46s      
   |++++++++++                                        | 19% ~03m 44s      
   |+++++++++++                                       | 20% ~03m 41s      
   |+++++++++++                                       | 21% ~03m 38s      
   |++++++++++++                                      | 22% ~03m 35s      
   |++++++++++++                                      | 23% ~03m 33s      
   |+++++++++++++                                     | 24% ~03m 30s      
   |+++++++++++++                                     | 25% ~03m 29s      
   |++++++++++++++                                    | 26% ~03m 26s      
   |++++++++++++++                                    | 27% ~03m 23s      
   |+++++++++++++++                                   | 28% ~03m 20s      
   |+++++++++++++++                                   | 29% ~03m 17s      
   |++++++++++++++++                                  | 30% ~03m 14s      
   |++++++++++++++++                                  | 31% ~03m 12s      
   |+++++++++++++++++                                 | 32% ~03m 11s      
   |+++++++++++++++++                                 | 33% ~03m 08s      
   |++++++++++++++++++                                | 34% ~03m 05s      
   |++++++++++++++++++                                | 35% ~03m 02s      
   |+++++++++++++++++++                               | 36% ~02m 59s      
   |+++++++++++++++++++                               | 37% ~02m 57s      
   |++++++++++++++++++++                              | 38% ~02m 54s      
   |++++++++++++++++++++                              | 39% ~02m 53s      
   |+++++++++++++++++++++                             | 40% ~02m 50s      
   |+++++++++++++++++++++                             | 41% ~02m 47s      
   |++++++++++++++++++++++                            | 42% ~02m 44s      
   |++++++++++++++++++++++                            | 43% ~02m 41s      
   |+++++++++++++++++++++++                           | 44% ~02m 38s      
   |+++++++++++++++++++++++                           | 45% ~02m 35s      
   |++++++++++++++++++++++++                          | 46% ~02m 32s      
   |++++++++++++++++++++++++                          | 47% ~02m 29s      
   |+++++++++++++++++++++++++                         | 48% ~02m 26s      
   |+++++++++++++++++++++++++                         | 49% ~02m 23s      
   |++++++++++++++++++++++++++                        | 51% ~02m 21s      
   |++++++++++++++++++++++++++                        | 52% ~02m 18s      
   |+++++++++++++++++++++++++++                       | 53% ~02m 15s      
   |+++++++++++++++++++++++++++                       | 54% ~02m 12s      
   |++++++++++++++++++++++++++++                      | 55% ~02m 09s      
   |++++++++++++++++++++++++++++                      | 56% ~02m 06s      
   |+++++++++++++++++++++++++++++                     | 57% ~02m 03s      
   |+++++++++++++++++++++++++++++                     | 58% ~02m 01s      
   |++++++++++++++++++++++++++++++                    | 59% ~01m 58s      
   |++++++++++++++++++++++++++++++                    | 60% ~01m 55s      
   |+++++++++++++++++++++++++++++++                   | 61% ~01m 52s      
   |+++++++++++++++++++++++++++++++                   | 62% ~01m 49s      
   |++++++++++++++++++++++++++++++++                  | 63% ~01m 46s      
   |++++++++++++++++++++++++++++++++                  | 64% ~01m 43s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~01m 41s      
   |+++++++++++++++++++++++++++++++++                 | 66% ~01m 38s      
   |++++++++++++++++++++++++++++++++++                | 67% ~01m 35s      
   |++++++++++++++++++++++++++++++++++                | 68% ~01m 32s      
   |+++++++++++++++++++++++++++++++++++               | 69% ~01m 29s      
   |+++++++++++++++++++++++++++++++++++               | 70% ~01m 26s      
   |++++++++++++++++++++++++++++++++++++              | 71% ~01m 24s      
   |++++++++++++++++++++++++++++++++++++              | 72% ~01m 21s      
   |+++++++++++++++++++++++++++++++++++++             | 73% ~01m 18s      
   |+++++++++++++++++++++++++++++++++++++             | 74% ~01m 15s      
   |++++++++++++++++++++++++++++++++++++++            | 75% ~01m 12s      
   |++++++++++++++++++++++++++++++++++++++            | 76% ~01m 09s      
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~01m 07s      
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~01m 04s      
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~01m 01s      
   |++++++++++++++++++++++++++++++++++++++++          | 80% ~58s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~55s          
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~52s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~49s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~46s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~43s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~40s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~37s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~35s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~32s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~29s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~26s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~23s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~20s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~17s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~14s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~12s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~09s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~06s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~03s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 04m 43s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~01m 41s      
   |++                                                | 2 % ~01m 40s      
   |++                                                | 3 % ~01m 39s      
   |+++                                               | 4 % ~01m 38s      
   |+++                                               | 5 % ~01m 36s      
   |++++                                              | 7 % ~01m 36s      
   |++++                                              | 8 % ~01m 34s      
   |+++++                                             | 9 % ~01m 33s      
   |+++++                                             | 10% ~01m 32s      
   |++++++                                            | 11% ~01m 30s      
   |++++++                                            | 12% ~01m 32s      
   |+++++++                                           | 13% ~01m 31s      
   |++++++++                                          | 14% ~01m 30s      
   |++++++++                                          | 15% ~01m 28s      
   |+++++++++                                         | 16% ~01m 27s      
   |+++++++++                                         | 17% ~01m 26s      
   |++++++++++                                        | 18% ~01m 25s      
   |++++++++++                                        | 20% ~01m 24s      
   |+++++++++++                                       | 21% ~01m 22s      
   |+++++++++++                                       | 22% ~01m 21s      
   |++++++++++++                                      | 23% ~01m 20s      
   |++++++++++++                                      | 24% ~01m 25s      
   |+++++++++++++                                     | 25% ~01m 24s      
   |++++++++++++++                                    | 26% ~01m 22s      
   |++++++++++++++                                    | 27% ~01m 20s      
   |+++++++++++++++                                   | 28% ~01m 19s      
   |+++++++++++++++                                   | 29% ~01m 17s      
   |++++++++++++++++                                  | 30% ~01m 16s      
   |++++++++++++++++                                  | 32% ~01m 15s      
   |+++++++++++++++++                                 | 33% ~01m 13s      
   |+++++++++++++++++                                 | 34% ~01m 12s      
   |++++++++++++++++++                                | 35% ~01m 11s      
   |++++++++++++++++++                                | 36% ~01m 09s      
   |+++++++++++++++++++                               | 37% ~01m 08s      
   |++++++++++++++++++++                              | 38% ~01m 07s      
   |++++++++++++++++++++                              | 39% ~01m 05s      
   |+++++++++++++++++++++                             | 40% ~01m 04s      
   |+++++++++++++++++++++                             | 41% ~01m 03s      
   |++++++++++++++++++++++                            | 42% ~01m 02s      
   |++++++++++++++++++++++                            | 43% ~01m 00s      
   |+++++++++++++++++++++++                           | 45% ~59s          
   |+++++++++++++++++++++++                           | 46% ~58s          
   |++++++++++++++++++++++++                          | 47% ~57s          
   |++++++++++++++++++++++++                          | 48% ~56s          
   |+++++++++++++++++++++++++                         | 49% ~54s          
   |+++++++++++++++++++++++++                         | 50% ~53s          
   |++++++++++++++++++++++++++                        | 51% ~52s          
   |+++++++++++++++++++++++++++                       | 52% ~51s          
   |+++++++++++++++++++++++++++                       | 53% ~49s          
   |++++++++++++++++++++++++++++                      | 54% ~48s          
   |++++++++++++++++++++++++++++                      | 55% ~47s          
   |+++++++++++++++++++++++++++++                     | 57% ~46s          
   |+++++++++++++++++++++++++++++                     | 58% ~45s          
   |++++++++++++++++++++++++++++++                    | 59% ~44s          
   |++++++++++++++++++++++++++++++                    | 60% ~43s          
   |+++++++++++++++++++++++++++++++                   | 61% ~42s          
   |+++++++++++++++++++++++++++++++                   | 62% ~40s          
   |++++++++++++++++++++++++++++++++                  | 63% ~39s          
   |+++++++++++++++++++++++++++++++++                 | 64% ~38s          
   |+++++++++++++++++++++++++++++++++                 | 65% ~37s          
   |++++++++++++++++++++++++++++++++++                | 66% ~36s          
   |++++++++++++++++++++++++++++++++++                | 67% ~35s          
   |+++++++++++++++++++++++++++++++++++               | 68% ~33s          
   |+++++++++++++++++++++++++++++++++++               | 70% ~32s          
   |++++++++++++++++++++++++++++++++++++              | 71% ~31s          
   |++++++++++++++++++++++++++++++++++++              | 72% ~30s          
   |+++++++++++++++++++++++++++++++++++++             | 73% ~29s          
   |+++++++++++++++++++++++++++++++++++++             | 74% ~28s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~26s          
   |+++++++++++++++++++++++++++++++++++++++           | 76% ~25s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~24s          
   |++++++++++++++++++++++++++++++++++++++++          | 78% ~23s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~22s          
   |+++++++++++++++++++++++++++++++++++++++++         | 80% ~21s          
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~20s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~18s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~17s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~16s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~15s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~14s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~13s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~11s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~10s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~09s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~08s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~07s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~06s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~05s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~03s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~02s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 01m 46s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~01m 50s      
   |++                                                | 2 % ~01m 51s      
   |++                                                | 3 % ~01m 50s      
   |+++                                               | 4 % ~01m 49s      
   |+++                                               | 5 % ~01m 48s      
   |++++                                              | 6 % ~01m 48s      
   |++++                                              | 7 % ~01m 46s      
   |+++++                                             | 8 % ~01m 45s      
   |+++++                                             | 9 % ~01m 43s      
   |++++++                                            | 11% ~01m 42s      
   |++++++                                            | 12% ~01m 40s      
   |+++++++                                           | 13% ~01m 39s      
   |+++++++                                           | 14% ~01m 38s      
   |++++++++                                          | 15% ~01m 37s      
   |++++++++                                          | 16% ~01m 36s      
   |+++++++++                                         | 17% ~01m 35s      
   |+++++++++                                         | 18% ~01m 34s      
   |++++++++++                                        | 19% ~01m 33s      
   |++++++++++                                        | 20% ~01m 32s      
   |+++++++++++                                       | 21% ~01m 30s      
   |++++++++++++                                      | 22% ~01m 29s      
   |++++++++++++                                      | 23% ~01m 30s      
   |+++++++++++++                                     | 24% ~01m 29s      
   |+++++++++++++                                     | 25% ~01m 27s      
   |++++++++++++++                                    | 26% ~01m 26s      
   |++++++++++++++                                    | 27% ~01m 25s      
   |+++++++++++++++                                   | 28% ~01m 24s      
   |+++++++++++++++                                   | 29% ~01m 22s      
   |++++++++++++++++                                  | 31% ~01m 21s      
   |++++++++++++++++                                  | 32% ~01m 20s      
   |+++++++++++++++++                                 | 33% ~01m 19s      
   |+++++++++++++++++                                 | 34% ~01m 18s      
   |++++++++++++++++++                                | 35% ~01m 16s      
   |++++++++++++++++++                                | 36% ~01m 15s      
   |+++++++++++++++++++                               | 37% ~01m 14s      
   |+++++++++++++++++++                               | 38% ~01m 13s      
   |++++++++++++++++++++                              | 39% ~01m 12s      
   |++++++++++++++++++++                              | 40% ~01m 10s      
   |+++++++++++++++++++++                             | 41% ~01m 09s      
   |++++++++++++++++++++++                            | 42% ~01m 08s      
   |++++++++++++++++++++++                            | 43% ~01m 06s      
   |+++++++++++++++++++++++                           | 44% ~01m 05s      
   |+++++++++++++++++++++++                           | 45% ~01m 05s      
   |++++++++++++++++++++++++                          | 46% ~01m 03s      
   |++++++++++++++++++++++++                          | 47% ~01m 02s      
   |+++++++++++++++++++++++++                         | 48% ~01m 01s      
   |+++++++++++++++++++++++++                         | 49% ~60s          
   |++++++++++++++++++++++++++                        | 51% ~58s          
   |++++++++++++++++++++++++++                        | 52% ~57s          
   |+++++++++++++++++++++++++++                       | 53% ~56s          
   |+++++++++++++++++++++++++++                       | 54% ~55s          
   |++++++++++++++++++++++++++++                      | 55% ~53s          
   |++++++++++++++++++++++++++++                      | 56% ~52s          
   |+++++++++++++++++++++++++++++                     | 57% ~51s          
   |+++++++++++++++++++++++++++++                     | 58% ~50s          
   |++++++++++++++++++++++++++++++                    | 59% ~48s          
   |++++++++++++++++++++++++++++++                    | 60% ~47s          
   |+++++++++++++++++++++++++++++++                   | 61% ~47s          
   |++++++++++++++++++++++++++++++++                  | 62% ~45s          
   |++++++++++++++++++++++++++++++++                  | 63% ~44s          
   |+++++++++++++++++++++++++++++++++                 | 64% ~43s          
   |+++++++++++++++++++++++++++++++++                 | 65% ~42s          
   |++++++++++++++++++++++++++++++++++                | 66% ~40s          
   |++++++++++++++++++++++++++++++++++                | 67% ~39s          
   |+++++++++++++++++++++++++++++++++++               | 68% ~38s          
   |+++++++++++++++++++++++++++++++++++               | 69% ~36s          
   |++++++++++++++++++++++++++++++++++++              | 71% ~35s          
   |++++++++++++++++++++++++++++++++++++              | 72% ~34s          
   |+++++++++++++++++++++++++++++++++++++             | 73% ~33s          
   |+++++++++++++++++++++++++++++++++++++             | 74% ~31s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~31s          
   |++++++++++++++++++++++++++++++++++++++            | 76% ~29s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~28s          
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~27s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~26s          
   |++++++++++++++++++++++++++++++++++++++++         | 80% ~24s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~23s          
   |++++++++++++++++++++++++++++++++++++++++++        | 82% ~22s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~20s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~19s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~18s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~16s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~15s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~14s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~13s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~11s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~10s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~09s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~08s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~06s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~05s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~04s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~03s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 01m 59s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~02m 44s      
   |++                                                | 2 % ~02m 46s      
   |++                                                | 3 % ~02m 45s      
   |+++                                               | 4 % ~02m 43s      
   |+++                                               | 5 % ~02m 42s      
   |++++                                              | 6 % ~02m 40s      
   |++++                                              | 7 % ~02m 38s      
   |+++++                                             | 8 % ~02m 36s      
   |+++++                                             | 9 % ~02m 39s      
   |++++++                                            | 10% ~02m 36s      
   |++++++                                            | 11% ~02m 34s      
   |+++++++                                           | 12% ~02m 31s      
   |+++++++                                           | 13% ~02m 30s      
   |++++++++                                          | 14% ~02m 28s      
   |++++++++                                          | 15% ~02m 26s      
   |+++++++++                                         | 16% ~02m 24s      
   |+++++++++                                         | 18% ~02m 22s      
   |++++++++++                                        | 19% ~02m 21s      
   |++++++++++                                        | 20% ~02m 19s      
   |+++++++++++                                       | 21% ~02m 17s      
   |+++++++++++                                       | 22% ~02m 17s      
   |++++++++++++                                      | 23% ~02m 15s      
   |++++++++++++                                      | 24% ~02m 13s      
   |+++++++++++++                                     | 25% ~02m 11s      
   |+++++++++++++                                     | 26% ~02m 09s      
   |++++++++++++++                                    | 27% ~02m 07s      
   |++++++++++++++                                    | 28% ~02m 06s      
   |+++++++++++++++                                   | 29% ~02m 04s      
   |+++++++++++++++                                   | 30% ~02m 05s      
   |++++++++++++++++                                  | 31% ~02m 03s      
   |++++++++++++++++                                  | 32% ~02m 01s      
   |+++++++++++++++++                                 | 33% ~01m 59s      
   |++++++++++++++++++                                | 34% ~01m 57s      
   |++++++++++++++++++                                | 35% ~01m 55s      
   |+++++++++++++++++++                               | 36% ~01m 53s      
   |+++++++++++++++++++                               | 37% ~01m 51s      
   |++++++++++++++++++++                              | 38% ~01m 52s      
   |++++++++++++++++++++                              | 39% ~01m 50s      
   |+++++++++++++++++++++                             | 40% ~01m 48s      
   |+++++++++++++++++++++                             | 41% ~01m 46s      
   |++++++++++++++++++++++                            | 42% ~01m 44s      
   |++++++++++++++++++++++                            | 43% ~01m 42s      
   |+++++++++++++++++++++++                           | 44% ~01m 40s      
   |+++++++++++++++++++++++                           | 45% ~01m 38s      
   |++++++++++++++++++++++++                          | 46% ~01m 36s      
   |++++++++++++++++++++++++                          | 47% ~01m 34s      
   |+++++++++++++++++++++++++                         | 48% ~01m 32s      
   |+++++++++++++++++++++++++                         | 49% ~01m 30s      
   |++++++++++++++++++++++++++                        | 51% ~01m 28s      
   |++++++++++++++++++++++++++                        | 52% ~01m 26s      
   |+++++++++++++++++++++++++++                       | 53% ~01m 24s      
   |+++++++++++++++++++++++++++                       | 54% ~01m 22s      
   |++++++++++++++++++++++++++++                      | 55% ~01m 20s      
   |++++++++++++++++++++++++++++                      | 56% ~01m 18s      
   |+++++++++++++++++++++++++++++                     | 57% ~01m 17s      
   |+++++++++++++++++++++++++++++                     | 58% ~01m 15s      
   |++++++++++++++++++++++++++++++                    | 59% ~01m 13s      
   |++++++++++++++++++++++++++++++                    | 60% ~01m 11s      
   |+++++++++++++++++++++++++++++++                   | 61% ~01m 09s      
   |+++++++++++++++++++++++++++++++                   | 62% ~01m 08s      
   |++++++++++++++++++++++++++++++++                  | 63% ~01m 06s      
   |++++++++++++++++++++++++++++++++                  | 64% ~01m 04s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~01m 02s      
   |+++++++++++++++++++++++++++++++++                 | 66% ~01m 00s      
   |++++++++++++++++++++++++++++++++++                | 67% ~58s          
   |+++++++++++++++++++++++++++++++++++               | 68% ~56s          
   |+++++++++++++++++++++++++++++++++++               | 69% ~55s          
   |++++++++++++++++++++++++++++++++++++              | 70% ~53s          
   |++++++++++++++++++++++++++++++++++++              | 71% ~51s          
   |+++++++++++++++++++++++++++++++++++++             | 72% ~49s          
   |+++++++++++++++++++++++++++++++++++++             | 73% ~47s          
   |++++++++++++++++++++++++++++++++++++++            | 74% ~45s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~43s          
   |+++++++++++++++++++++++++++++++++++++++           | 76% ~42s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~40s          
   |++++++++++++++++++++++++++++++++++++++++          | 78% ~38s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~36s          
   |+++++++++++++++++++++++++++++++++++++++++         | 80% ~34s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~33s          
   |++++++++++++++++++++++++++++++++++++++++++        | 82% ~31s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~29s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~27s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~25s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~24s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~22s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~20s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~18s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~16s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~15s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~13s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~11s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~09s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~07s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~06s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 02m 58s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~02m 13s      
   |++                                                | 2 % ~02m 12s      
   |++                                                | 3 % ~02m 10s      
   |+++                                               | 4 % ~02m 09s      
   |+++                                               | 5 % ~02m 08s      
   |++++                                              | 7 % ~02m 07s      
   |++++                                              | 8 % ~02m 05s      
   |+++++                                             | 9 % ~02m 07s      
   |+++++                                             | 10% ~02m 05s      
   |++++++                                            | 11% ~02m 04s      
   |+++++++                                           | 12% ~02m 02s      
   |+++++++                                           | 13% ~02m 00s      
   |++++++++                                          | 14% ~01m 59s      
   |++++++++                                          | 15% ~01m 57s      
   |+++++++++                                         | 16% ~01m 55s      
   |+++++++++                                         | 18% ~01m 54s      
   |++++++++++                                        | 19% ~01m 52s      
   |++++++++++                                        | 20% ~01m 51s      
   |+++++++++++                                       | 21% ~01m 49s      
   |+++++++++++                                       | 22% ~01m 48s      
   |++++++++++++                                      | 23% ~01m 46s      
   |+++++++++++++                                     | 24% ~01m 45s      
   |+++++++++++++                                     | 25% ~01m 43s      
   |++++++++++++++                                    | 26% ~01m 42s      
   |++++++++++++++                                    | 27% ~01m 41s      
   |+++++++++++++++                                   | 29% ~01m 39s      
   |+++++++++++++++                                   | 30% ~01m 39s      
   |++++++++++++++++                                  | 31% ~01m 37s      
   |++++++++++++++++                                  | 32% ~01m 36s      
   |+++++++++++++++++                                 | 33% ~01m 34s      
   |++++++++++++++++++                                | 34% ~01m 32s      
   |++++++++++++++++++                                | 35% ~01m 31s      
   |+++++++++++++++++++                               | 36% ~01m 30s      
   |+++++++++++++++++++                               | 37% ~01m 28s      
   |++++++++++++++++++++                              | 38% ~01m 27s      
   |++++++++++++++++++++                              | 40% ~01m 25s      
   |+++++++++++++++++++++                             | 41% ~01m 23s      
   |+++++++++++++++++++++                             | 42% ~01m 22s      
   |++++++++++++++++++++++                            | 43% ~01m 21s      
   |++++++++++++++++++++++                            | 44% ~01m 19s      
   |+++++++++++++++++++++++                           | 45% ~01m 18s      
   |++++++++++++++++++++++++                          | 46% ~01m 16s      
   |++++++++++++++++++++++++                          | 47% ~01m 15s      
   |+++++++++++++++++++++++++                         | 48% ~01m 13s      
   |+++++++++++++++++++++++++                         | 49% ~01m 12s      
   |++++++++++++++++++++++++++                        | 51% ~01m 11s      
   |++++++++++++++++++++++++++                        | 52% ~01m 10s      
   |+++++++++++++++++++++++++++                       | 53% ~01m 08s      
   |+++++++++++++++++++++++++++                       | 54% ~01m 06s      
   |++++++++++++++++++++++++++++                      | 55% ~01m 05s      
   |+++++++++++++++++++++++++++++                     | 56% ~01m 03s      
   |+++++++++++++++++++++++++++++                     | 57% ~01m 02s      
   |++++++++++++++++++++++++++++++                    | 58% ~01m 00s      
   |++++++++++++++++++++++++++++++                    | 59% ~59s          
   |+++++++++++++++++++++++++++++++                   | 60% ~58s          
   |+++++++++++++++++++++++++++++++                   | 62% ~56s          
   |++++++++++++++++++++++++++++++++                  | 63% ~55s          
   |++++++++++++++++++++++++++++++++                  | 64% ~53s          
   |+++++++++++++++++++++++++++++++++                 | 65% ~51s          
   |+++++++++++++++++++++++++++++++++                 | 66% ~50s          
   |++++++++++++++++++++++++++++++++++                | 67% ~48s          
   |+++++++++++++++++++++++++++++++++++               | 68% ~46s          
   |+++++++++++++++++++++++++++++++++++               | 69% ~45s          
   |++++++++++++++++++++++++++++++++++++              | 70% ~43s          
   |++++++++++++++++++++++++++++++++++++              | 71% ~42s          
   |+++++++++++++++++++++++++++++++++++++             | 73% ~40s          
   |+++++++++++++++++++++++++++++++++++++             | 74% ~38s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~37s          
   |++++++++++++++++++++++++++++++++++++++            | 76% ~35s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~33s          
   |++++++++++++++++++++++++++++++++++++++++          | 78% ~32s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~30s          
   |+++++++++++++++++++++++++++++++++++++++++         | 80% ~29s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~27s          
   |++++++++++++++++++++++++++++++++++++++++++        | 82% ~25s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~24s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~22s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~21s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~19s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~18s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~16s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~14s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~13s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~11s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~10s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~08s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~06s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~05s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~03s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 02m 24s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~04m 06s      
   |++                                                | 2 % ~04m 01s      
   |++                                                | 3 % ~03m 56s      
   |+++                                               | 4 % ~03m 53s      
   |+++                                               | 5 % ~03m 51s      
   |++++                                              | 6 % ~03m 48s      
   |++++                                              | 7 % ~03m 46s      
   |+++++                                             | 9 % ~03m 48s      
   |+++++                                             | 10% ~03m 45s      
   |++++++                                            | 11% ~03m 42s      
   |++++++                                            | 12% ~03m 39s      
   |+++++++                                           | 13% ~03m 36s      
   |+++++++                                           | 14% ~03m 34s      
   |++++++++                                          | 15% ~03m 31s      
   |++++++++                                          | 16% ~03m 28s      
   |+++++++++                                         | 17% ~03m 25s      
   |++++++++++                                        | 18% ~03m 23s      
   |++++++++++                                        | 19% ~03m 22s      
   |+++++++++++                                       | 20% ~03m 19s      
   |+++++++++++                                       | 21% ~03m 16s      
   |++++++++++++                                      | 22% ~03m 14s      
   |++++++++++++                                      | 23% ~03m 11s      
   |+++++++++++++                                     | 24% ~03m 08s      
   |+++++++++++++                                     | 26% ~03m 05s      
   |++++++++++++++                                    | 27% ~03m 06s      
   |++++++++++++++                                    | 28% ~03m 03s      
   |+++++++++++++++                                   | 29% ~03m 00s      
   |+++++++++++++++                                   | 30% ~02m 58s      
   |++++++++++++++++                                  | 31% ~02m 55s      
   |++++++++++++++++                                  | 32% ~02m 52s      
   |+++++++++++++++++                                 | 33% ~02m 49s      
   |++++++++++++++++++                                | 34% ~02m 50s      
   |++++++++++++++++++                                | 35% ~02m 47s      
   |+++++++++++++++++++                               | 36% ~02m 43s      
   |+++++++++++++++++++                               | 37% ~02m 40s      
   |++++++++++++++++++++                              | 38% ~02m 37s      
   |++++++++++++++++++++                              | 39% ~02m 34s      
   |+++++++++++++++++++++                             | 40% ~02m 31s      
   |+++++++++++++++++++++                             | 41% ~02m 29s      
   |++++++++++++++++++++++                            | 43% ~02m 26s      
   |++++++++++++++++++++++                            | 44% ~02m 23s      
   |+++++++++++++++++++++++                           | 45% ~02m 20s      
   |+++++++++++++++++++++++                           | 46% ~02m 17s      
   |++++++++++++++++++++++++                          | 47% ~02m 14s      
   |++++++++++++++++++++++++                          | 48% ~02m 12s      
   |+++++++++++++++++++++++++                         | 49% ~02m 09s      
   |+++++++++++++++++++++++++                         | 50% ~02m 07s      
   |++++++++++++++++++++++++++                        | 51% ~02m 04s      
   |+++++++++++++++++++++++++++                       | 52% ~02m 01s      
   |+++++++++++++++++++++++++++                       | 53% ~01m 58s      
   |++++++++++++++++++++++++++++                      | 54% ~01m 56s      
   |++++++++++++++++++++++++++++                      | 55% ~01m 53s      
   |+++++++++++++++++++++++++++++                     | 56% ~01m 50s      
   |+++++++++++++++++++++++++++++                     | 57% ~01m 48s      
   |++++++++++++++++++++++++++++++                    | 59% ~01m 45s      
   |++++++++++++++++++++++++++++++                    | 60% ~01m 42s      
   |+++++++++++++++++++++++++++++++                   | 61% ~01m 39s      
   |+++++++++++++++++++++++++++++++                   | 62% ~01m 37s      
   |++++++++++++++++++++++++++++++++                  | 63% ~01m 34s      
   |++++++++++++++++++++++++++++++++                  | 64% ~01m 32s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~01m 29s      
   |+++++++++++++++++++++++++++++++++                 | 66% ~01m 26s      
   |++++++++++++++++++++++++++++++++++                | 67% ~01m 23s      
   |+++++++++++++++++++++++++++++++++++               | 68% ~01m 21s      
   |+++++++++++++++++++++++++++++++++++               | 69% ~01m 18s      
   |++++++++++++++++++++++++++++++++++++              | 70% ~01m 16s      
   |++++++++++++++++++++++++++++++++++++              | 71% ~01m 13s      
   |+++++++++++++++++++++++++++++++++++++             | 72% ~01m 10s      
   |+++++++++++++++++++++++++++++++++++++             | 73% ~01m 07s      
   |++++++++++++++++++++++++++++++++++++++            | 74% ~01m 05s      
   |++++++++++++++++++++++++++++++++++++++            | 76% ~01m 02s      
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~59s          
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~57s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~54s          
   |++++++++++++++++++++++++++++++++++++++++          | 80% ~52s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~49s          
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~46s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~43s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~41s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~38s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~35s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~32s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~30s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~27s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~24s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~22s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~19s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~16s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~13s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~11s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~08s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~05s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~03s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 04m 13s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~03m 06s      
   |+                                                 | 2 % ~03m 06s      
   |++                                                | 3 % ~03m 04s      
   |++                                                | 4 % ~03m 02s      
   |+++                                               | 5 % ~02m 60s      
   |+++                                               | 6 % ~02m 58s      
   |++++                                              | 7 % ~02m 56s      
   |++++                                              | 8 % ~02m 55s      
   |+++++                                             | 9 % ~02m 57s      
   |+++++                                             | 10% ~02m 55s      
   |++++++                                            | 11% ~02m 52s      
   |++++++                                            | 12% ~02m 51s      
   |+++++++                                           | 13% ~02m 49s      
   |+++++++                                           | 14% ~02m 47s      
   |++++++++                                          | 15% ~02m 45s      
   |++++++++                                          | 16% ~02m 49s      
   |+++++++++                                         | 17% ~02m 47s      
   |+++++++++                                         | 18% ~02m 45s      
   |++++++++++                                        | 19% ~02m 42s      
   |++++++++++                                        | 20% ~02m 40s      
   |+++++++++++                                       | 21% ~02m 38s      
   |+++++++++++                                       | 22% ~02m 36s      
   |++++++++++++                                      | 23% ~02m 34s      
   |++++++++++++                                      | 24% ~02m 37s      
   |+++++++++++++                                     | 25% ~02m 34s      
   |+++++++++++++                                     | 26% ~02m 32s      
   |++++++++++++++                                    | 27% ~02m 29s      
   |++++++++++++++                                    | 28% ~02m 27s      
   |+++++++++++++++                                   | 29% ~02m 24s      
   |+++++++++++++++                                   | 30% ~02m 22s      
   |++++++++++++++++                                  | 31% ~02m 20s      
   |++++++++++++++++                                  | 32% ~02m 17s      
   |+++++++++++++++++                                 | 33% ~02m 15s      
   |+++++++++++++++++                                | 34% ~02m 13s      
   |++++++++++++++++++                                | 35% ~02m 11s      
   |++++++++++++++++++                                | 36% ~02m 09s      
   |+++++++++++++++++++                               | 37% ~02m 06s      
   |+++++++++++++++++++                               | 38% ~02m 04s      
   |++++++++++++++++++++                              | 39% ~02m 02s      
   |++++++++++++++++++++                              | 40% ~01m 60s      
   |+++++++++++++++++++++                             | 41% ~01m 58s      
   |+++++++++++++++++++++                             | 42% ~01m 56s      
   |++++++++++++++++++++++                            | 43% ~01m 54s      
   |++++++++++++++++++++++                            | 44% ~01m 52s      
   |+++++++++++++++++++++++                           | 45% ~01m 50s      
   |+++++++++++++++++++++++                           | 46% ~01m 48s      
   |++++++++++++++++++++++++                          | 47% ~01m 46s      
   |++++++++++++++++++++++++                          | 48% ~01m 44s      
   |+++++++++++++++++++++++++                         | 49% ~01m 42s      
   |+++++++++++++++++++++++++                         | 50% ~01m 40s      
   |++++++++++++++++++++++++++                        | 51% ~01m 38s      
   |++++++++++++++++++++++++++                        | 52% ~01m 36s      
   |+++++++++++++++++++++++++++                       | 53% ~01m 34s      
   |+++++++++++++++++++++++++++                       | 54% ~01m 32s      
   |++++++++++++++++++++++++++++                      | 55% ~01m 30s      
   |++++++++++++++++++++++++++++                     | 56% ~01m 28s      
   |+++++++++++++++++++++++++++++                     | 57% ~01m 26s      
   |+++++++++++++++++++++++++++++                     | 58% ~01m 24s      
   |++++++++++++++++++++++++++++++                    | 59% ~01m 22s      
   |++++++++++++++++++++++++++++++                    | 60% ~01m 20s      
   |+++++++++++++++++++++++++++++++                   | 61% ~01m 18s      
   |+++++++++++++++++++++++++++++++                   | 62% ~01m 16s      
   |++++++++++++++++++++++++++++++++                  | 63% ~01m 14s      
   |++++++++++++++++++++++++++++++++                  | 64% ~01m 12s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~01m 10s      
   |+++++++++++++++++++++++++++++++++                 | 66% ~01m 08s      
   |++++++++++++++++++++++++++++++++++                | 67% ~01m 06s      
   |++++++++++++++++++++++++++++++++++               | 68% ~01m 04s      
   |+++++++++++++++++++++++++++++++++++               | 69% ~01m 02s      
   |+++++++++++++++++++++++++++++++++++               | 70% ~01m 00s      
   |++++++++++++++++++++++++++++++++++++              | 71% ~58s          
   |++++++++++++++++++++++++++++++++++++              | 72% ~56s          
   |+++++++++++++++++++++++++++++++++++++             | 73% ~54s          
   |+++++++++++++++++++++++++++++++++++++             | 74% ~53s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~51s          
   |++++++++++++++++++++++++++++++++++++++            | 76% ~48s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~46s          
   |+++++++++++++++++++++++++++++++++++++++          | 78% ~44s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~42s          
   |++++++++++++++++++++++++++++++++++++++++         | 80% ~40s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~38s          
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~36s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~34s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~32s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~30s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~28s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~26s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~24s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~22s          
   |+++++++++++++++++++++++++++++++++++++++++++++    | 90% ~20s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~18s          
   |++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~16s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~14s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~12s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~10s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~08s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~06s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 03m 20s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~08m 09s      
   |++                                                | 2 % ~08m 05s      
   |++                                                | 3 % ~08m 01s      
   |+++                                               | 4 % ~08m 11s      
   |+++                                               | 5 % ~08m 03s      
   |++++                                              | 6 % ~07m 57s      
   |++++                                              | 7 % ~08m 09s      
   |+++++                                             | 8 % ~08m 01s      
   |+++++                                             | 9 % ~07m 53s      
   |++++++                                            | 10% ~08m 02s      
   |++++++                                            | 11% ~07m 53s      
   |+++++++                                           | 12% ~07m 45s      
   |+++++++                                           | 13% ~07m 36s      
   |++++++++                                          | 14% ~07m 29s      
   |++++++++                                          | 15% ~07m 22s      
   |+++++++++                                         | 16% ~07m 16s      
   |+++++++++                                         | 17% ~07m 09s      
   |++++++++++                                        | 18% ~07m 03s      
   |++++++++++                                        | 19% ~06m 60s      
   |+++++++++++                                       | 20% ~06m 54s      
   |+++++++++++                                       | 21% ~06m 48s      
   |++++++++++++                                      | 22% ~06m 42s      
   |++++++++++++                                      | 23% ~06m 36s      
   |+++++++++++++                                     | 24% ~06m 31s      
   |+++++++++++++                                     | 25% ~06m 26s      
   |++++++++++++++                                    | 26% ~06m 21s      
   |++++++++++++++                                    | 27% ~06m 15s      
   |+++++++++++++++                                   | 28% ~06m 14s      
   |+++++++++++++++                                   | 29% ~06m 08s      
   |++++++++++++++++                                  | 30% ~06m 02s      
   |++++++++++++++++                                  | 31% ~05m 56s      
   |+++++++++++++++++                                 | 32% ~05m 50s      
   |+++++++++++++++++                                 | 33% ~05m 44s      
   |++++++++++++++++++                                | 34% ~05m 39s      
   |++++++++++++++++++                                | 35% ~05m 33s      
   |+++++++++++++++++++                               | 36% ~05m 28s      
   |+++++++++++++++++++                               | 37% ~05m 23s      
   |++++++++++++++++++++                              | 38% ~05m 18s      
   |++++++++++++++++++++                              | 39% ~05m 12s      
   |+++++++++++++++++++++                             | 40% ~05m 07s      
   |+++++++++++++++++++++                             | 41% ~05m 01s      
   |++++++++++++++++++++++                            | 42% ~04m 56s      
   |++++++++++++++++++++++                            | 43% ~04m 51s      
   |+++++++++++++++++++++++                           | 44% ~04m 46s      
   |+++++++++++++++++++++++                           | 45% ~04m 40s      
   |++++++++++++++++++++++++                          | 46% ~04m 35s      
   |++++++++++++++++++++++++                          | 47% ~04m 31s      
   |+++++++++++++++++++++++++                         | 48% ~04m 26s      
   |+++++++++++++++++++++++++                         | 49% ~04m 20s      
   |++++++++++++++++++++++++++                        | 51% ~04m 17s      
   |++++++++++++++++++++++++++                        | 52% ~04m 11s      
   |+++++++++++++++++++++++++++                       | 53% ~04m 06s      
   |+++++++++++++++++++++++++++                       | 54% ~04m 00s      
   |++++++++++++++++++++++++++++                      | 55% ~03m 55s      
   |++++++++++++++++++++++++++++                      | 56% ~03m 49s      
   |+++++++++++++++++++++++++++++                     | 57% ~03m 44s      
   |+++++++++++++++++++++++++++++                     | 58% ~03m 39s      
   |++++++++++++++++++++++++++++++                    | 59% ~03m 33s      
   |++++++++++++++++++++++++++++++                    | 60% ~03m 28s      
   |+++++++++++++++++++++++++++++++                   | 61% ~03m 23s      
   |+++++++++++++++++++++++++++++++                   | 62% ~03m 18s      
   |++++++++++++++++++++++++++++++++                  | 63% ~03m 13s      
   |++++++++++++++++++++++++++++++++                  | 64% ~03m 07s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~03m 02s      
   |+++++++++++++++++++++++++++++++++                 | 66% ~02m 57s      
   |++++++++++++++++++++++++++++++++++                | 67% ~02m 52s      
   |++++++++++++++++++++++++++++++++++                | 68% ~02m 46s      
   |+++++++++++++++++++++++++++++++++++               | 69% ~02m 42s      
   |+++++++++++++++++++++++++++++++++++               | 70% ~02m 36s      
   |++++++++++++++++++++++++++++++++++++              | 71% ~02m 31s      
   |++++++++++++++++++++++++++++++++++++              | 72% ~02m 26s      
   |+++++++++++++++++++++++++++++++++++++             | 73% ~02m 21s      
   |+++++++++++++++++++++++++++++++++++++             | 74% ~02m 16s      
   |++++++++++++++++++++++++++++++++++++++            | 75% ~02m 11s      
   |++++++++++++++++++++++++++++++++++++++            | 76% ~02m 05s      
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~01m 60s      
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~01m 55s      
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~01m 49s      
   |++++++++++++++++++++++++++++++++++++++++          | 80% ~01m 44s      
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01m 39s      
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~01m 34s      
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01m 29s      
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~01m 23s      
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01m 18s      
   |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01m 13s      
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01m 08s      
   |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~01m 02s      
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~57s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~52s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~47s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~42s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~36s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~31s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~26s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~21s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~16s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~10s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~05s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 08m 32s

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~03m 27s      
   |++                                                | 2 % ~03m 26s      
   |++                                                | 3 % ~03m 24s      
   |+++                                               | 4 % ~03m 29s      
   |+++                                               | 5 % ~03m 25s      
   |++++                                              | 6 % ~03m 22s      
   |++++                                              | 7 % ~03m 19s      
   |+++++                                             | 8 % ~03m 16s      
   |+++++                                             | 9 % ~03m 14s      
   |++++++                                            | 11% ~03m 11s      
   |++++++                                            | 12% ~03m 09s      
   |+++++++                                           | 13% ~03m 06s      
   |+++++++                                           | 14% ~03m 04s      
   |++++++++                                          | 15% ~03m 01s      
   |++++++++                                          | 16% ~03m 02s      
   |+++++++++                                         | 17% ~02m 60s      
   |+++++++++                                         | 18% ~02m 58s      
   |++++++++++                                        | 19% ~02m 55s      
   |++++++++++                                        | 20% ~02m 53s      
   |+++++++++++                                       | 21% ~02m 50s      
   |++++++++++++                                      | 22% ~02m 48s      
   |++++++++++++                                      | 23% ~02m 49s      
   |+++++++++++++                                     | 24% ~02m 47s      
   |+++++++++++++                                     | 25% ~02m 44s      
   |++++++++++++++                                    | 26% ~02m 42s      
   |++++++++++++++                                    | 27% ~02m 40s      
   |+++++++++++++++                                   | 28% ~02m 37s      
   |+++++++++++++++                                   | 29% ~02m 34s      
   |++++++++++++++++                                  | 31% ~02m 36s      
   |++++++++++++++++                                  | 32% ~02m 33s      
   |+++++++++++++++++                                 | 33% ~02m 30s      
   |+++++++++++++++++                                 | 34% ~02m 28s      
   |++++++++++++++++++                                | 35% ~02m 25s      
   |++++++++++++++++++                                | 36% ~02m 22s      
   |+++++++++++++++++++                               | 37% ~02m 20s      
   |+++++++++++++++++++                               | 38% ~02m 17s      
   |++++++++++++++++++++                              | 39% ~02m 14s      
   |++++++++++++++++++++                              | 40% ~02m 12s      
   |+++++++++++++++++++++                             | 41% ~02m 09s      
   |++++++++++++++++++++++                            | 42% ~02m 07s      
   |++++++++++++++++++++++                            | 43% ~02m 04s      
   |+++++++++++++++++++++++                           | 44% ~02m 02s      
   |+++++++++++++++++++++++                           | 45% ~01m 60s      
   |++++++++++++++++++++++++                          | 46% ~01m 57s      
   |++++++++++++++++++++++++                          | 47% ~01m 55s      
   |+++++++++++++++++++++++++                         | 48% ~01m 53s      
   |+++++++++++++++++++++++++                         | 49% ~01m 51s      
   |++++++++++++++++++++++++++                        | 51% ~01m 48s      
   |++++++++++++++++++++++++++                        | 52% ~01m 46s      
   |+++++++++++++++++++++++++++                       | 53% ~01m 44s      
   |+++++++++++++++++++++++++++                       | 54% ~01m 41s      
   |++++++++++++++++++++++++++++                      | 55% ~01m 39s      
   |++++++++++++++++++++++++++++                      | 56% ~01m 36s      
   |+++++++++++++++++++++++++++++                     | 57% ~01m 34s      
   |+++++++++++++++++++++++++++++                     | 58% ~01m 32s      
   |++++++++++++++++++++++++++++++                    | 59% ~01m 29s      
   |++++++++++++++++++++++++++++++                    | 60% ~01m 27s      
   |+++++++++++++++++++++++++++++++                   | 61% ~01m 25s      
   |++++++++++++++++++++++++++++++++                  | 62% ~01m 23s      
   |++++++++++++++++++++++++++++++++                  | 63% ~01m 20s      
   |+++++++++++++++++++++++++++++++++                 | 64% ~01m 18s      
   |+++++++++++++++++++++++++++++++++                 | 65% ~01m 16s      
   |++++++++++++++++++++++++++++++++++                | 66% ~01m 13s      
   |++++++++++++++++++++++++++++++++++                | 67% ~01m 12s      
   |+++++++++++++++++++++++++++++++++++               | 68% ~01m 10s      
   |+++++++++++++++++++++++++++++++++++               | 69% ~01m 07s      
   |++++++++++++++++++++++++++++++++++++              | 71% ~01m 05s      
   |++++++++++++++++++++++++++++++++++++              | 72% ~01m 02s      
   |+++++++++++++++++++++++++++++++++++++             | 73% ~01m 00s      
   |+++++++++++++++++++++++++++++++++++++             | 74% ~58s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~55s          
   |++++++++++++++++++++++++++++++++++++++            | 76% ~53s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~51s          
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~48s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~46s          
   |++++++++++++++++++++++++++++++++++++++++         | 80% ~44s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~41s          
   |++++++++++++++++++++++++++++++++++++++++++        | 82% ~39s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~37s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~34s          
   |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~32s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~30s          
   |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~28s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~25s          
   |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~23s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~21s          
   |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~18s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~16s          
   |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~14s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~11s          
   |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~09s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~07s          
   |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~05s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
   |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed = 03m 36s
write.table(GA2123wk_v3.specific.type.markers,"GA2123wk_v3.specificType.markers.txt",sep="\t")
GA2123wk_v3.specific.clust.markers %>% group_by(cluster) %>% top_n(20, avg_logFC)
DoHeatmap(object = Hs_GA2123_Trachea_v3, genes.use = c("CFTR","ANO1","EPCAM","TP63","KRT5","FOXN4","SHISA8","MCIDAS","SNTN","CDHR3","FOXJ1","MUC16","MUC1","MUC4","MUC20","SERPINB3","CD9","KRT14","SOSTDC1","MUC5B","SPDEF","RNASE1","LYZ","SNAP25","ASCL1","PLP1","MPZ","FCER1G","C1QA","PECAM1","LYVE1","ACTA2","RGS5","NOTCH3","SOX9","COL2A1","ACAN","WNT2","THY1","TWIST2","MKI67"), 
    slim.col.label = TRUE, group.label.rot = TRUE,use.scaled = T,group.by="specific_type",group.cex = 30,cex.row=30,group.order = c("Basal_SE","Ciliated_Foxn4","Ciliated","Secretory_SE","Basal_SMG","Secretory_SMG","Myoepithelial","Epcam_ECM","Stem","Schwann/Neural","Immune","VascularEndothelial","LymphaticEndothelial","Muscle","Chondrocyte","MesenchymalProgenitor","Fibroblast","CyclingFibroblast")
  )

print(levels(Hs_GA2123_Trachea_v3@ident))
Hs_GA2123_Trachea_v3<-SetAllIdent(object = Hs_GA2123_Trachea_v3, id = "specific_type")
Hs_GA2123_Trachea_v3@ident = factor(Hs_GA2123_Trachea_v3@ident,levels(Hs_GA2123_Trachea_v3@ident)[c(1,15,5,4,2,16,13,7,17,14,9,10,18,12,3,11,8,6)])
DotPlot(object = Hs_GA2123_Trachea_v3, cols.use = c("lightgray","red"),genes.plot = c("CFTR","ANO1","EPCAM","TP63","FOXN4","SHISA8","MCIDAS","SNTN","CDHR3","FOXJ1","MUC16","SERPINB3","SOX9","KRT14","SOSTDC1","MUC5B","SPDEF","LTF","LYZ","ACTA2","POU5F1","ESRG","SNAP25","CHGA","PLP1","MPZ","FCER1G","C1QA","PECAM1","LYVE1","MYH11","RGS5","NOTCH3","COL2A1","ACAN","WNT2","CD34","THY1","TWIST2","MKI67"),group.by = "ident", x.lab.rot = T,plot.legend = T)
DotPlot(object = Hs_GA2123_Trachea_v3, cols.use = c("forestgreen","magenta3"),genes.plot = c("CFTR","ANO1","EPCAM","TP63","KRT5","FOXN4","SHISA8","MCIDAS","SNTN","CDHR3","FOXJ1","MUC16","SERPINB3","SOX9","KRT14","SOSTDC1","MUC5B","MUC5AC","SPDEF","LTF","LYZ","ACTA2","POU5F1","ESRG","SNAP25","CHGA","PLP1","MPZ","FCER1G","C1QA","PECAM1","LYVE1","MYH11","RGS5","NOTCH3","COL2A1","ACAN","WNT2","PI16","CD34","THY1","TWIST2","MKI67"),group.by = "ident", x.lab.rot = T,plot.legend = T,col.min = -2,col.max = 2)
DotPlot(object = Hs_GA2123_Trachea_v3, cols.use = c("forestgreen","magenta3"),genes.plot = c("CFTR","ANO1","EPCAM","TP63","KRT5","KRT14","SOSTDC1","SOX9","FOXN4","SHISA8","SNTN","FOXJ1","TFF3","MUC5B","SPDEF","LTF","LYZ","ACTA2","POU5F1","ESRG","TUBB3","SNAP25","CHGA","ASCL1","PLP1","MPZ","FCER1G","C1QA","PECAM1","LYVE1","MYH11","RGS5","NOTCH3","COL2A1","ACAN","WNT2","CD34","THY1","CLEC3B","TWIST2","MKI67"),group.by = "ident", x.lab.rot = T,plot.legend = T,col.min = -2,col.max = 2)
DotPlot(object = Hs_GA2123_Trachea_v3, cols.use = c("forestgreen","magenta3"),genes.plot = c("FOXJ1","LTF","TP63","WNT2","PI16","CLEC3B","EPCAM","TERC","TERT","CLDN6","POU5F1","LIN28A","ESRG","L1TD1","DPPA4","UTF1","FOXD3-AS1","CRABP1","THY1","TUBB2B","UCHL1","TUBB3","SNAP25","PLP1"),group.by = "ident", x.lab.rot = T,plot.legend = T)
df_Hs<-FetchData(Hs_GA2123_Trachea_v3,c("ANO1","CFTR","SERPINB3","MUC16","specific_type"))
ggplot(df_Hs,aes(specific_type,CFTR))+geom_dotplot(binaxis="y",aes(fill=specific_type),binwidth=0.05,stackdir="center",position=position_dodge(0.8), dotsize=0.018)+ theme(axis.text.x = element_text(angle = 45,hjust=1))+ stat_summary(aes(color=specific_type),fun.data=mean_sdl, fun.args = list(mult=1), 
                 geom="pointrange",position=position_dodge(0.7))
TSNEPlot(object = Hs_GA2123_Trachea_v3, do.label = F,group.by="specific_type",pt.size = 0.3)+scale_color_manual(values=c('#e6194b' , '#808080','#3cb44b', '#ffe119', '#4363d8', '#911eb4', '#46f0f0', '#f032e6', '#bcf60c', '#008080', '#e6beff', '#9a6324', '#fabebe',  '#800000', '#aaffc3', '#808000','#ffd8b1', '#000075', '#f58231', '#000000','#fffac8'
))
For the purpose of visualization, we average within each specific cell type:
Hs_GA2123_Trachea_v3<-SetAllIdent(object = Hs_GA2123_Trachea_v3, id = "specific_type")
average_Hs_specific_Annotation<-AverageExpression(object = Hs_GA2123_Trachea_v3,return.seurat = T)

DoHeatmap(object = average_Hs_specific_Annotation, genes.use = c("EPCAM","TP63","KRT5","FOXN4","SHISA8","MCIDAS","SNTN","CDHR3","FOXJ1","MUC16","SERPINB3","SOX9","KRT14","SOSTDC1","MUC5B","MUC5AC","SPDEF","LTF","LYZ","ACTA2","MYH11","POU5F1","ESRG","SNAP25","ASCL1","CHGA","PLP1","MPZ","FCER1G","C1QA","PECAM1","LYVE1","RGS5","NOTCH3","COL2A1","ACAN","WNT2","PI16","CD34","THY1","TWIST2","MKI67","CFTR","ANO1"), 
    slim.col.label = TRUE, group.label.rot = TRUE,use.scaled = T,group.cex = 30,cex.row=20,group.order = c("Basal_SE","Basal_SMG","Ciliated_Foxn4","Ciliated","Secretory_SE",
 "Secretory_SMG", "Myoepithelial","Epcam_ECM","Stem","Schwann/Neural","Immune","LymphaticEndothelial","VascularEndothelial","Muscle","Chondrocyte","MesenchymalProgenitor","Fibroblast","CyclingFibroblast"))

DoHeatmap(object = average_Hs_specific_Annotation, genes.use = c("EPCAM","TP63","KRT5","KRT14","SOSTDC1","SOX9","FOXN4","SHISA8","SNTN","FOXJ1","TFF3","MUC5B","SPDEF","LTF","LYZ","ACTA2","POU5F1","ESRG","TUBB3","SNAP25","CHGA","ASCL1","PLP1","MPZ","FCER1G","C1QA","PECAM1","LYVE1","MYH11","RGS5","NOTCH3","COL2A1","ACAN","WNT2","CD34","THY1","CLEC3B","TWIST2","MKI67","CFTR","ANO1"), 
    slim.col.label = TRUE, group.label.rot = TRUE,use.scaled = T,group.cex = 30,cex.row=20,group.order = c("Basal_SE","Basal_SMG","Ciliated_Foxn4","Ciliated","Secretory_SE",
 "Secretory_SMG", "Myoepithelial","Epcam_ECM","Stem","Schwann/Neural","Immune","LymphaticEndothelial","VascularEndothelial","Muscle","Chondrocyte","MesenchymalProgenitor","Fibroblast","CyclingFibroblast"))
save(Hs_GA2123_Trachea_v3_sub1,file="seurat_GA2123wk_v3_sub1.RData")
save(Hs_GA2123_Trachea_v3,file="seurat_GA2123wk_v3.RData")
check a few virus receptors:
VlnPlot(object = Hs_GA2123_Trachea_v3, features.plot = c("CDHR3","ACE2","TMPRSS2","TMPRSS4","ANPEP","DPP4","ST6GAL1","ST3GAL4"), nCol = 2,group.by="specific_type",point.size.use=0.3,x.lab.rot = T)

LS0tCnRpdGxlOiAiSHNfQXByMyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyMjIyBIdW1hbiBmZXRhbCB0cmFjaGVhIHNhbXBsZXMgY29sbGVjdGVkIG9uIEFwcjMgMjAxOS4gMTBYIGdlbm9taWNzIDMnIGtpdCwgdjMgY2hlbWlzdHJ5LiAKIyMjIyBUaGUgc2FtcGxlcyBjb21lIGZyb20gMiBpbmRpdmlkdWFscyBvZiBnZXN0YXRpb25hbCBhZ2VzIG9mIDIxIHdlZWtzIGFuZCAyMyB3ZWVrcyByZXNwZWN0aXZlbHkuCgpgYGB7cn0KbGlicmFyeShTZXVyYXQpCmxpYnJhcnkoZHBseXIpCmBgYApgYGB7cn0KWmlwRjwtbGlzdC5maWxlcyhwYXRoPSIuIixwYXR0ZXJuPSIqLmd6IixmdWxsLm5hbWVzID0gVCxyZWN1cnNpdmUgPSBUKQpaaXBGCmBgYApgYGB7cn0KbGlicmFyeShwbHlyKQpsaWJyYXJ5KFIudXRpbHMpCmxkcGx5KC5kYXRhPVppcEYsIC5mdW49Z3VuemlwKSAgI1RoaXMganVzdCB1bnppcHMgbG9jYWxseQpgYGAKCmBgYHtyfQojIyMjIyBGaXJzdCBJIG1hbnVhbGx5IGNoYW5nZWQgYWxsIGZlYXR1cnJlcy50c3YgdG8gZ2VuZXMudHN2LiBPdGhlcndpc2UgUmVhZDEwWCAoU2V1cmF0IHYyKSB3b3VsZCBub3QgcmVjb2duaXplLgojIExvYWQgZGF0YQpmaWxlXzEwWGRpcl9IczwtYygiR0EyMXdrX3YzIiwiR0EyM3drX3YzIikKbmFtZXMoZmlsZV8xMFhkaXJfSHMpPC1jKCJHQTIxd2tfdjMiLCJHQTIzd2tfdjMiKQpIc19BcHIzX3YzLmRhdGEgPC0gUmVhZDEwWChkYXRhLmRpciA9IGZpbGVfMTBYZGlyX0hzKQpgYGAKCmBgYHtyfQpkaW0oSHNfQXByM192My5kYXRhKQpgYGAKCiMjIyMjIDI2NTc3IGdlbmVzIGJhc2VkIG9uIEhHMzgtcGx1cyByZWZlcmVuY2UKIyMjIyMgMzg4OTIgImNlbGxzIiBhcmUgaWRlbnRpZmllZCBieSBDZWxsIFJhbmdlcgoKYGBge3J9CkhzX0dBMjEyM19UcmFjaGVhX3YzIDwtIENyZWF0ZVNldXJhdE9iamVjdChyYXcuZGF0YSA9IEhzX0FwcjNfdjMuZGF0YSwgbWluLmNlbGxzID0gMSwgbWluLmdlbmVzID0gMSwgCiAgICBwcm9qZWN0ID0gIkhzX0dBMjEyM19UcmFjaGVhX3YzY2hlbWlzdHJ5IikKSHNfR0EyMTIzX1RyYWNoZWFfdjNAcmF3LmRhdGFARGltCmBgYApgYGB7cn0KaGVhZChIc19HQTIxMjNfVHJhY2hlYV92M0BjZWxsLm5hbWVzKQpgYGAKCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92MyA8LSBGaWx0ZXJDZWxscyhvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92Mywgc3Vic2V0Lm5hbWVzID0gYygibkdlbmUiLCJuVU1JIiksIAogICAgbG93LnRocmVzaG9sZHMgPSBjKDEwMDAsNDAwMCksIGhpZ2gudGhyZXNob2xkcyA9IGMoSW5mLEluZikpCkhzX0dBMjEyM19UcmFjaGVhX3YzQGRhdGFARGltCmBgYAoKYGBge3J9CmNlbGxfbmFtZTwtcmVhZC50YWJsZSh0ZXh0PUhzX0dBMjEyM19UcmFjaGVhX3YzQGNlbGwubmFtZXMsc2VwPSJfIixjb2xDbGFzc2VzID0gImNoYXJhY3RlciIpCmFnZTwtY2VsbF9uYW1lWywxXQpuYW1lcyhhZ2UpPC1Ic19HQTIxMjNfVHJhY2hlYV92M0BjZWxsLm5hbWVzCmBgYApgYGB7cn0KSHNfR0EyMTIzX1RyYWNoZWFfdjM8LUFkZE1ldGFEYXRhKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBtZXRhZGF0YSA9IGFnZSwgY29sLm5hbWUgPSAiYWdlIikKYGBgCgpgYGB7cn0KdGFibGUoSHNfR0EyMTIzX1RyYWNoZWFfdjNAbWV0YS5kYXRhJGFnZSkKYGBgCgpgYGB7cn0Kcmliby5nZW5lcyA8LSBncmVwKHBhdHRlcm4gPSAiXlJQW1NMXVtbOmRpZ2l0Ol1dIiwgeCA9IHJvd25hbWVzKHggPSBIc19HQTIxMjNfVHJhY2hlYV92M0BkYXRhKSwgdmFsdWUgPSBUUlVFKQpwZXJjZW50LnJpYm8gPC0gTWF0cml4Ojpjb2xTdW1zKEhzX0dBMjEyM19UcmFjaGVhX3YzQHJhdy5kYXRhW3JpYm8uZ2VuZXMsIF0pL01hdHJpeDo6Y29sU3VtcyhIc19HQTIxMjNfVHJhY2hlYV92M0ByYXcuZGF0YSkKSHNfR0EyMTIzX1RyYWNoZWFfdjMgPC0gQWRkTWV0YURhdGEob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIG1ldGFkYXRhID0gcGVyY2VudC5yaWJvLCBjb2wubmFtZSA9ICJwZXJjZW50LnJpYm8iKQpgYGAKCmBgYHtyfQphZ2dyZWdhdGUoSHNfR0EyMTIzX1RyYWNoZWFfdjNAbWV0YS5kYXRhWywgYygxOjIsNSldLCBsaXN0KEhzX0dBMjEyM19UcmFjaGVhX3YzQG1ldGEuZGF0YSRhZ2UpLCBtZWRpYW4pCgpgYGAKCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92MyA8LSBOb3JtYWxpemVEYXRhKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzKQpgYGAKCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92MyA8LSBTY2FsZURhdGEob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMpCmBgYAoKYGBge3J9CkhzX0dBMjEyM19UcmFjaGVhX3YzIDwtIEZpbmRWYXJpYWJsZUdlbmVzKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBkby5wbG90ID0gVFJVRSwgeC5sb3cuY3V0b2ZmPTAuMSx4LmhpZ2guY3V0b2ZmID0gSW5mLCB5LmN1dG9mZiA9IDAuNSkKYGBgCgpgYGB7cn0KSHNfR0EyMTIzX1RyYWNoZWFfdjMgPC0gUnVuUENBKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBkby5wcmludCA9IEZBTFNFKQpIc19HQTIxMjNfVHJhY2hlYV92MyA8LSBQcm9qZWN0UENBKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBkby5wcmludCA9IEZBTFNFKQpgYGAKYGBge3IsZmlnLmhlaWdodD01MCxmaWcud2lkdGg9MTV9ClBDSGVhdG1hcChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgcGMudXNlID0gMToxMCwgY2VsbHMudXNlID0gNTAwLCBkby5iYWxhbmNlZCA9IFRSVUUsIGxhYmVsLmNvbHVtbnMgPSBGQUxTRSwgbnVtLmdlbmVzID0gMjUpCgpgYGAKCmBgYHtyfQpQQ0VsYm93UGxvdChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MykKYGBgCgpgYGB7cn0Kbi5wY3MgPSAyMApyZXMudXNlZCA8LSAwLjgKCkhzX0dBMjEyM19UcmFjaGVhX3YzIDwtIEZpbmRDbHVzdGVycyhvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgcmVkdWN0aW9uLnR5cGUgPSAicGNhIiwgZGltcy51c2UgPSAxOm4ucGNzLCAKICAgIHJlc29sdXRpb24gPSByZXMudXNlZCwgcHJpbnQub3V0cHV0ID0gMCwgc2F2ZS5TTk4gPSBUUlVFKQpgYGAKYGBge3J9CkhzX0dBMjEyM19UcmFjaGVhX3YzIDwtIFJ1blRTTkUob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIGRpbXMudXNlID0gMTpuLnBjcywgc2VlZC51c2UgPSAxMCwgcGVycGxleGl0eT0zMCwgZGltLmVtYmVkID0gMikKCmBgYAoKYGBge3J9ClRTTkVQbG90KG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBkby5sYWJlbCA9IFQsZ3JvdXAuYnk9InJlcy4wLjgiLHB0LnNpemUgPSAwLjIpCgpgYGAKCmBgYHtyfQpUU05FUGxvdChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgZG8ubGFiZWwgPSBGLGdyb3VwLmJ5PSJhZ2UiLHB0LnNpemUgPSAwLjEpCmBgYAoKYGBge3J9Cm4ucGNzID0gMjAKcmVzLnVzZWQgPC0gMS4wCgpIc19HQTIxMjNfVHJhY2hlYV92MyA8LSBGaW5kQ2x1c3RlcnMob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIHJlZHVjdGlvbi50eXBlID0gInBjYSIsIGRpbXMudXNlID0gMTpuLnBjcywgCiAgICByZXNvbHV0aW9uID0gcmVzLnVzZWQsIHByaW50Lm91dHB1dCA9IDAsIHNhdmUuU05OID0gVFJVRSxmb3JjZS5yZWNhbGM9VCkKYGBgCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92MyA8LSBSdW5UU05FKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBkaW1zLnVzZSA9IDE6bi5wY3MsIHNlZWQudXNlID0gMTAsIHBlcnBsZXhpdHk9MzAsIGRpbS5lbWJlZCA9IDIsay5wYXJhbT0xMCkKCmBgYAoKYGBge3J9ClRTTkVQbG90KG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBkby5sYWJlbCA9IFQsZ3JvdXAuYnk9InJlcy4xIikKCmBgYAoKYGBge3IsZmlnLmhlaWdodD0xNSxmaWcud2lkdGg9NjB9CkRvSGVhdG1hcChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgZ2VuZXMudXNlID0gYygiQU5PMSIsIkNGVFIiLCJFUENBTSIsIlRQNjMiLCJGT1hKMSIsIkZPWE40IiwiU0NHQjFBMSIsIkxURiIsIlNOQVAyNSIsIkFTQ0wxIiwiQ0hHQSIsIlBMUDEiLCJNUFoiLCJTT1gxMCIsIkMxUUEiLCJGQ0VSMUciLCJQRUNBTTEiLCJMWVZFMSIsIlJHUzUiLCJOT1RDSDMiLCJBQ1RBMiIsIkFDVEcyIiwiREVTIiwiUERMSU0zIiwiRkdMMiIsIlBDREg3IiwiTVlIMTEiLCJDT0wxMUExIiwiU09YOSIsIlNPWDUiLCJTT1g2IiwiQ09MMkExIiwiQUNBTiIsIlNFUlBJTkYxIiwiQ09MMUExIiwiVEhCUzIiLCJLRVJBIiwiRENOIiwiTFVNIiwiQ0QzNCIsIldOVDIiLCJUSFkxIiwiUEkxNiIsIkNMRUMzQiIsIk1LSTY3IiwiVE9QMkEiLCJUV0lTVDIiKSwgCiAgICBzbGltLmNvbC5sYWJlbCA9IFRSVUUsIGdyb3VwLmxhYmVsLnJvdCA9IFRSVUUsdXNlLnNjYWxlZCA9IFQsZ3JvdXAuYnk9InJlcy4xIixncm91cC5jZXggPSAyNSxjZXgucm93PTI1LGdyb3VwLm9yZGVyID0gYyg5LDE2LDEyLDE0LDEwLDE5LDMsMjIsMjAsMjEsNSw3LDE1LDE3LDgsMTgsNCwwLDIsMSwxMywxMSw2KQogICkKYGBgCgpgYGB7cn0KSHNfR0EyMTIzX1RyYWNoZWFfdjM8LVNldEFsbElkZW50KEhzX0dBMjEyM19UcmFjaGVhX3YzLGlkPSJyZXMuMSIpCkdBMjEyM3drX3YzLnJlczEuY2x1c3QubWFya2VycyA8LSBGaW5kQWxsTWFya2VycyhvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92Mywgb25seS5wb3MgPSBUUlVFLCBtaW4ucGN0ID0gMC4yNSwgdGhyZXNoLnVzZSA9IDAuMjUpCgpgYGAKCmBgYHtyfQpHQTIxMjN3a192My5yZXMxLmNsdXN0Lm1hcmtlcnMgJT4lIGdyb3VwX2J5KGNsdXN0ZXIpICU+JSB0b3BfbigyMCwgYXZnX2xvZ0ZDKQpgYGAKYGBge3J9CndyaXRlLnRhYmxlKEdBMjEyM3drX3YzLnJlczEuY2x1c3QubWFya2VycywiR0EyMTIzd2tfdjMucmVzMS5tYXJrZXJzLnR4dCIsc2VwPSJcdCIpCgpgYGAKYGBge3J9CkhzX3YzX3JlczFfOF8xODwtRmluZE1hcmtlcnMoSHNfR0EyMTIzX1RyYWNoZWFfdjMsaWRlbnQuMT1jKDgpLGlkZW50LjI9YygxOCksb25seS5wb3MgPSBGKQpIc192M19yZXMxXzhfMTgKYGBgCgpgYGB7cn0KSHNfdjNfcmVzMV8yb3ZlcjE8LUZpbmRNYXJrZXJzKEhzX0dBMjEyM19UcmFjaGVhX3YzLGlkZW50LjE9YygyKSxpZGVudC4yPWMoMSksb25seS5wb3MgPSBUKQpIc192M19yZXMxXzJvdmVyMQpgYGAKCmBgYHtyfQpIc192M19yZXMxXzIxXzIwPC1GaW5kTWFya2VycyhIc19HQTIxMjNfVHJhY2hlYV92MyxpZGVudC4xPWMoMjEpLGlkZW50LjI9YygyMCksb25seS5wb3MgPSBUKQpIc192M19yZXMxXzIxXzIwCmBgYAoKYGBge3J9Cm4ucGNzID0gMjAKcmVzLnVzZWQgPC0gMS4yCgpIc19HQTIxMjNfVHJhY2hlYV92MyA8LSBGaW5kQ2x1c3RlcnMob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIHJlZHVjdGlvbi50eXBlID0gInBjYSIsIGRpbXMudXNlID0gMTpuLnBjcywgCiAgICByZXNvbHV0aW9uID0gcmVzLnVzZWQsIHByaW50Lm91dHB1dCA9IDAsIHNhdmUuU05OID0gVFJVRSkKYGBgCgpgYGB7cn0KSHNfR0EyMTIzX1RyYWNoZWFfdjMgPC0gUnVuVFNORShvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgZGltcy51c2UgPSAxOm4ucGNzLCBzZWVkLnVzZSA9IDEwLCBwZXJwbGV4aXR5PTMwLCBkaW0uZW1iZWQgPSAyLGsucGFyYW09MTApCgpgYGAKCmBgYHtyfQpUU05FUGxvdChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgZG8ubGFiZWwgPSBULGdyb3VwLmJ5PSJyZXMuMS4yIikKCmBgYAoKYGBge3J9Cm4ucGNzID0gMjAKcmVzLnVzZWQgPC0gMS40CgpIc19HQTIxMjNfVHJhY2hlYV92MyA8LSBGaW5kQ2x1c3RlcnMob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIHJlZHVjdGlvbi50eXBlID0gInBjYSIsIGRpbXMudXNlID0gMTpuLnBjcywgCiAgICByZXNvbHV0aW9uID0gcmVzLnVzZWQsIHByaW50Lm91dHB1dCA9IDAsIHNhdmUuU05OID0gVFJVRSkKYGBgCgpgYGB7cn0KSHNfR0EyMTIzX1RyYWNoZWFfdjMgPC0gUnVuVFNORShvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgZGltcy51c2UgPSAxOm4ucGNzLCBzZWVkLnVzZSA9IDEwLCBwZXJwbGV4aXR5PTMwLCBkaW0uZW1iZWQgPSAyLGsucGFyYW09MTApCgpgYGAKCmBgYHtyfQpUU05FUGxvdChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgZG8ubGFiZWwgPSBULGdyb3VwLmJ5PSJyZXMuMS40IikKCmBgYAoKIyMjIyMgaW5wb3J0IGRvdWJsZXQgc2NvcmVzIGdlbmVyYXRlZCBieSBTY3J1YmxldCwgYW5kIG1ha2UgdGhlbSBhIG1ldGFkYXRhIGNvbHVtbjoKCmBgYHtyfQpsb2FkKCJHQTIxMjN3a19hcHIzX3YzX2RvdWJsZXRTY29yZS5SRGF0YSIpCkhzX0dBMjEyM19UcmFjaGVhX3YzPC1BZGRNZXRhRGF0YShvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgbWV0YWRhdGEgPSBHQTIxMjN3a19hcHIzX3YzX2RvdWJsZXRTY29yZSwgY29sLm5hbWUgPSAiZG91YmxldF9zY29yZSIpCnN1bShpcy5uYShIc19HQTIxMjNfVHJhY2hlYV92M0BtZXRhLmRhdGEkZG91YmxldF9zY29yZSkpCmBgYAoKCmBgYHtyLGZpZy5oZWlnaHQ9NSwgZmlnLndpZHRoPTIwfQpIc19HQTIxMjNfVHJhY2hlYV92MzwtU2V0QWxsSWRlbnQoSHNfR0EyMTIzX1RyYWNoZWFfdjMsaWQ9ImFnZSIpClZsblBsb3Qob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIGZlYXR1cmVzLnBsb3QgPSBjKCJkb3VibGV0X3Njb3JlIiksIG5Db2wgPSAxLGdyb3VwLmJ5PSJyZXMuMS40Iixwb2ludC5zaXplLnVzZT0wLjMsaWRlbnQuaW5jbHVkZSA9ICJHQTIxd2siKQpgYGAKCmBgYHtyLGZpZy5oZWlnaHQ9OCwgZmlnLndpZHRoPTIwfQpWbG5QbG90KG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBmZWF0dXJlcy5wbG90ID0gYygiZG91YmxldF9zY29yZSIpLCBuQ29sID0gMSxncm91cC5ieT0icmVzLjEuNCIscG9pbnQuc2l6ZS51c2U9MC4zLGlkZW50LmluY2x1ZGUgPSAiR0EyM3drIikKYGBgCgoKYGBge3IsZmlnLmhlaWdodD0yMCxmaWcud2lkdGg9NjB9CkRvSGVhdG1hcChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgZ2VuZXMudXNlID0gYygiQU5PMSIsIkNGVFIiLCJFUENBTSIsIktSVDgiLCJLUlQxOCIsIlRQNjMiLCJLUlQ1IiwiS1JUMTQiLCJTT1NUREMxIiwiS1JUNCIsIktSVDEzIiwiU1BERUYiLCJDUkVCM0wxIiwiTVVDNUIiLCJGT1hKMSIsIkZPWE40IiwiU0hJU0E4IiwiTUNJREFTIiwiVFVCQjMiLCJTTkFQMjUiLCJBU0NMMSIsIkNIR0EiLCJQTFAxIiwiTVBaIiwiQzFRQSIsIkZDRVIxRyIsIkNEM0ciLCJQRUNBTTEiLCJOUlAxIiwiTFlWRTEiLCJSR1M1IiwiTk9UQ0gzIiwiQUNUQTIiLCJUQUdMTiIsIk1ZSDExIiwiQ09MOEExIiwiQ09MMTFBMSIsIlNPWDkiLCJDT0wyQTEiLCJBQ0FOIiwiTUlBIiwiRENOIiwiTFVNIiwiQ0QzNCIsIldOVDIiLCJUSFkxIiwiUEkxNiIsIkNMRUMzQiIsIlRLMSIsIk1LSTY3IiwiVE9QMkEiLCJBTEFTMiIpLCAKICAgIHNsaW0uY29sLmxhYmVsID0gVFJVRSwgZ3JvdXAubGFiZWwucm90ID0gVFJVRSx1c2Uuc2NhbGVkID0gVCxncm91cC5ieT0icmVzLjEuNCIsZ3JvdXAuY2V4ID0gMzUsY2V4LnJvdz0yNSxncm91cC5vcmRlciA9IGMoOCwxNCwxNywxOSwxMCwyMSw5LDExLDI0LDIyLDIzLDMsNSwxNiwxOCw2LDIwLDEzLDcsMCwxLDIsMTUsMTIsNCkKICApCmBgYAoKCgpgYGB7cixmaWcuaGVpZ2h0PTE1LCBmaWcud2lkdGg9MjB9ClZsblBsb3Qob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIGZlYXR1cmVzLnBsb3QgPSBjKCJTT1gxMCIsIlBIT1gyQSIsICJQSE9YMkIiLCJDSEdBIiwiQVNDTDEiLCJSRVQiKSwgbkNvbCA9IDEsZ3JvdXAuYnk9InJlcy4xLjQiLHBvaW50LnNpemUudXNlPTAuMykKYGBgCmBgYHtyLGZpZy5oZWlnaHQ9OCxmaWcud2lkdGg9NDB9CiAgICBEb0hlYXRtYXAob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIGdlbmVzLnVzZSA9IGMoIkVQQ0FNIiwiVFVCQjMiLCJTTkFQMjUiLCJBU0NMMSIsIkNIR0EiLCJQSE9YMkEiLCJQSE9YMkIiLCJQTFAxIiwiTVBaIiksIAogICAgc2xpbS5jb2wubGFiZWwgPSBUUlVFLCBncm91cC5sYWJlbC5yb3QgPSBUUlVFLHVzZS5zY2FsZWQgPSBULGdyb3VwLmJ5PSJyZXMuMS40Iixncm91cC5jZXggPSAzNSxjZXgucm93PTI1LGNlbGxzLnVzZSA9IEhzX0dBMjEyM19UcmFjaGVhX3YzQGNlbGwubmFtZXNbSHNfR0EyMTIzX1RyYWNoZWFfdjNAbWV0YS5kYXRhJHJlcy4xLjQgJWluJSBjKDEwKV0KICApCmBgYAoKCiMjIyMjIHN1YnNldCB0aGUgTm9uLUVQQ0FNIGNlbGxzOgpgYGB7cn0KSHNfR0EyMTIzX1RyYWNoZWFfdjMgPC0gU2V0QWxsSWRlbnQob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIGlkID0gInJlcy4xLjQiKQpIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbTwtU3Vic2V0RGF0YShvYmplY3Q9SHNfR0EyMTIzX1RyYWNoZWFfdjMsaWRlbnQudXNlPWMoMDo3LDk6MTMsMTUsMTYsMTgsMjA6MjQpKQp0YWJsZShIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbUBtZXRhLmRhdGEkcmVzLjEuNCkKYGBgCgpgYGB7cn0KY29sbmFtZXMoSHNfR0EyMTIzX1RyYWNoZWFfdjNfbm9uRXBjYW1AbWV0YS5kYXRhKVtjb2xuYW1lcyhIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbUBtZXRhLmRhdGEpID09ICdyZXMuMC44J10gPC0gJ29yaWcuMC44Jwpjb2xuYW1lcyhIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbUBtZXRhLmRhdGEpW2NvbG5hbWVzKEhzX0dBMjEyM19UcmFjaGVhX3YzX25vbkVwY2FtQG1ldGEuZGF0YSkgPT0gJ3Jlcy4xLjQnXSA8LSAnb3JpZy4xLjQnCmNvbG5hbWVzKEhzX0dBMjEyM19UcmFjaGVhX3YzX25vbkVwY2FtQG1ldGEuZGF0YSlbY29sbmFtZXMoSHNfR0EyMTIzX1RyYWNoZWFfdjNfbm9uRXBjYW1AbWV0YS5kYXRhKSA9PSAncmVzLjEuMiddIDwtICdvcmlnLjEuMicKYGBgCgpgYGB7cn0KSHNfR0EyMTIzX1RyYWNoZWFfdjNfbm9uRXBjYW0gPC0gU2NhbGVEYXRhKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX25vbkVwY2FtKQpgYGAKCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbSA8LSBGaW5kVmFyaWFibGVHZW5lcyhvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbSwgZG8ucGxvdCA9IFRSVUUsIHgubG93LmN1dG9mZj0wLjEseC5oaWdoLmN1dG9mZiA9IEluZiwgeS5jdXRvZmYgPSAwLjUpCmBgYAoKCiMjIyMjI3J1biBQQ0Egb24gdGhlIHNldCBvZiBnZW5lcwoKYGBge3J9CkhzX0dBMjEyM19UcmFjaGVhX3YzX25vbkVwY2FtIDwtIFJ1blBDQShvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbSwgZG8ucHJpbnQgPSBGQUxTRSkKI1BDQVBsb3QoSHNfR0EyMTIzX1RyYWNoZWFfdjNfbm9uRXBjYW0pCmBgYAoKYGBge3J9CkhzX0dBMjEyM19UcmFjaGVhX3YzX25vbkVwY2FtIDwtIFByb2plY3RQQ0Eob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjNfbm9uRXBjYW0sIGRvLnByaW50ID0gRikKYGBgCgpgYGB7cn0KUENFbGJvd1Bsb3Qob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjNfbm9uRXBjYW0pCmBgYApgYGB7cixmaWcuaGVpZ2h0PTMwLGZpZy53aWR0aD0xNX0KUENIZWF0bWFwKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX25vbkVwY2FtLCBwYy51c2UgPSAxOjIwLCBjZWxscy51c2UgPSA1MDAsIGRvLmJhbGFuY2VkID0gVFJVRSwgbGFiZWwuY29sdW1ucyA9IEZBTFNFLCBudW0uZ2VuZXMgPSAyNSkKCmBgYAoKYGBge3J9Cm4ucGNzID0gMjAKcmVzLnVzZWQgPC0gMC44CgpIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbSA8LSBGaW5kQ2x1c3RlcnMob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjNfbm9uRXBjYW0sIHJlZHVjdGlvbi50eXBlID0gInBjYSIsIGRpbXMudXNlID0gMTpuLnBjcywgCiAgICByZXNvbHV0aW9uID0gcmVzLnVzZWQsIHByaW50Lm91dHB1dCA9IDAsIHNhdmUuU05OID0gVFJVRSxmb3JjZS5yZWNhbGMgPSBUKQpgYGAKCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbSA8LSBSdW5UU05FKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX25vbkVwY2FtLCBkaW1zLnVzZSA9IDE6bi5wY3MsIHNlZWQudXNlID0gMTAsIHBlcnBsZXhpdHk9MzAsIGRpbS5lbWJlZCA9IDIsay5wYXJhbT0xMCkKCmBgYAoKYGBge3J9ClRTTkVQbG90KG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX25vbkVwY2FtLCBkby5sYWJlbCA9IFQsZ3JvdXAuYnk9InJlcy4wLjgiKQoKYGBgCgoKYGBge3IsZmlnLmhlaWdodD0yMCxmaWcud2lkdGg9NjB9CkRvSGVhdG1hcChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbSwgZ2VuZXMudXNlID0gYygiQU5PMSIsIkNGVFIiLCJUVUJCMyIsIlNOQVAyNSIsIkFTQ0wxIiwiQ0hHQSIsIlBMUDEiLCJNUFoiLCJDMVFBIiwiRkNFUjFHIiwiQ0QzRyIsIlBFQ0FNMSIsIk5SUDEiLCJMWVZFMSIsIlJHUzUiLCJOT1RDSDMiLCJBQ1RBMiIsIlRBR0xOIiwiTVlIMTEiLCJDT0w4QTEiLCJDT0wxMUExIiwiU09YOSIsIkNPTDJBMSIsIkFDQU4iLCJNSUEiLCJEQ04iLCJMVU0iLCJDRDM0IiwiV05UMiIsIlRIWTEiLCJQSTE2IiwiQ0xFQzNCIiwiVEsxIiwiTUtJNjciLCJUT1AyQSIsIkFESVBPUSIsIkNBUjMiKSwgCiAgICBzbGltLmNvbC5sYWJlbCA9IFRSVUUsIGdyb3VwLmxhYmVsLnJvdCA9IFRSVUUsdXNlLnNjYWxlZCA9IFQsZ3JvdXAuYnk9InJlcy4wLjgiLGdyb3VwLmNleCA9IDM1LGNleC5yb3c9MjUsZ3JvdXAub3JkZXIgPSBjKDksMTQsMiwxNywxNSwxNiwxMyw2LDgsNSw0LDAsMywxLDEwLDExLDEyLDcpCiAgKQpgYGAKCmBgYHtyfQp0YWJsZShIc19HQTIxMjNfVHJhY2hlYV92M19ub25FcGNhbUBtZXRhLmRhdGEkb3JpZy4xLjQsSHNfR0EyMTIzX1RyYWNoZWFfdjNfbm9uRXBjYW1AbWV0YS5kYXRhJHJlcy4wLjgpCmBgYAoKCmBgYHtyfQpsaWJyYXJ5KGdnYWxsdXZpYWwpCmBgYApgYGB7ciwgZmlnLmhlaWdodD05LCBmaWcud2lkdGg9Nn0KZ2dwbG90KGRhdGE9SHNfR0EyMTIzX1RyYWNoZWFfdjNfbm9uRXBjYW1AbWV0YS5kYXRhLGFlcyhheGlzMT1vcmlnLjEuNCxheGlzMj1yZXMuMC44KSkrZ2VvbV9hbGx1dml1bShhZXMoZmlsbD1yZXMuMC44KSkrZ2VvbV9zdHJhdHVtKHdpZHRoID0gMS8xMiwgZmlsbCA9ICJibGFjayIsIGNvbG9yID0gImdyZXkiKSArZ2VvbV9sYWJlbChzdGF0ID0gInN0cmF0dW0iLCBsYWJlbC5zdHJhdGEgPSBUUlVFKStzY2FsZV94X2Rpc2NyZXRlKGxpbWl0cyA9IGMoIm9yaWcuMS40IiwgInJlcy4wLjgiKSwgZXhwYW5kID0gYyguMDUsIC4wNSkpCmBgYAoKCiMjIyMjIE5vdyBzdWJzZXQgdGhlIGJhc2FsLCBjaWxpYXRlZCwgYW5kIHNlY3JldG9yeToKCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92MyA8LSBTZXRBbGxJZGVudChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgaWQgPSAicmVzLjEuNCIpCkhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjE8LVN1YnNldERhdGEob2JqZWN0PUhzX0dBMjEyM19UcmFjaGVhX3YzLGlkZW50LnVzZT1jKDgsMTQsMTkpKQp0YWJsZShIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxQG1ldGEuZGF0YSRyZXMuMS40KQpgYGAKCmBgYHtyfQpjb2xuYW1lcyhIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxQG1ldGEuZGF0YSlbY29sbmFtZXMoSHNfR0EyMTIzX1RyYWNoZWFfdjNfc3ViMUBtZXRhLmRhdGEpID09ICdyZXMuMC44J10gPC0gJ29yaWcuMC44Jwpjb2xuYW1lcyhIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxQG1ldGEuZGF0YSlbY29sbmFtZXMoSHNfR0EyMTIzX1RyYWNoZWFfdjNfc3ViMUBtZXRhLmRhdGEpID09ICdyZXMuMS40J10gPC0gJ29yaWcuMS40Jwpjb2xuYW1lcyhIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxQG1ldGEuZGF0YSlbY29sbmFtZXMoSHNfR0EyMTIzX1RyYWNoZWFfdjNfc3ViMUBtZXRhLmRhdGEpID09ICdyZXMuMS4yJ10gPC0gJ29yaWcuMS4yJwpgYGAKCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxIDwtIFNjYWxlRGF0YShvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxKQpgYGAKCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxIDwtIEZpbmRWYXJpYWJsZUdlbmVzKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEsIGRvLnBsb3QgPSBUUlVFLCB4Lmxvdy5jdXRvZmY9MC4xLHguaGlnaC5jdXRvZmYgPSBJbmYsIHkuY3V0b2ZmID0gMC41KQpgYGAKCiMjIyMjI3J1biBQQ0Egb24gdGhlIHNldCBvZiBnZW5lcwoKYGBge3J9CkhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEgPC0gUnVuUENBKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEsIGRvLnByaW50ID0gRkFMU0UpCiNQQ0FQbG90KEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEpCmBgYAoKYGBge3J9CkhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEgPC0gUHJvamVjdFBDQShvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxLCBkby5wcmludCA9IEYpCmBgYAoKYGBge3J9ClBDRWxib3dQbG90KG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEpCmBgYApgYGB7cixmaWcuaGVpZ2h0PTMwLGZpZy53aWR0aD0xNX0KUENIZWF0bWFwKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEsIHBjLnVzZSA9IDE6MTIsIGNlbGxzLnVzZSA9IDUwMCwgZG8uYmFsYW5jZWQgPSBUUlVFLCBsYWJlbC5jb2x1bW5zID0gRkFMU0UsIG51bS5nZW5lcyA9IDI1KQoKYGBgCgpgYGB7cn0Kbi5wY3MgPSAxNgpyZXMudXNlZCA8LSAwLjgKCkhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEgPC0gRmluZENsdXN0ZXJzKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEsIHJlZHVjdGlvbi50eXBlID0gInBjYSIsIGRpbXMudXNlID0gMTpuLnBjcywgCiAgICByZXNvbHV0aW9uID0gcmVzLnVzZWQsIHByaW50Lm91dHB1dCA9IDAsIHNhdmUuU05OID0gVFJVRSkKYGBgCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxIDwtIFJ1blRTTkUob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjNfc3ViMSwgZGltcy51c2UgPSAxOm4ucGNzLCBzZWVkLnVzZSA9IDEwLCBwZXJwbGV4aXR5PTMwLCBkaW0uZW1iZWQgPSAyLGsucGFyYW09MTApCgpgYGAKCmBgYHtyfQpUU05FUGxvdChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxLCBkby5sYWJlbCA9IFQpCgpgYGAKCgpgYGB7cixmaWcuaGVpZ2h0PTIwLGZpZy53aWR0aD02MH0KRG9IZWF0bWFwKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEsIGdlbmVzLnVzZSA9IGMoIlRQNjMiLCJLUlQxNSIsIktSVDUiLCJLUlQxNyIsIkZPWE40IiwiU0hJU0E4IiwiTUNJREFTIiwiU05UTiIsIkNESFIzIiwiRk9YSjEiLCJLUlQ0IiwiTVVDMSIsIk1VQzQiLCJNVUMyMCIsIlNFUlBJTkIzIiwiR1NUUDEiLCJBTE9YMTUiLCJDRDkiLCJNWUgxMSIsIkFDVEcyIiwiTVlMSyIsIlRBR0xOIiwiTFRGIiwiQVpHUDEiLCJETUJUMSIsIkZDR0JQIiwiQ0NMMjgiLCJBUVA1IiwiTVVDNUIiLCJTUERFRiIsIlJOQVNFMSIsIkxZWiIsIlRJTVAzIiwiT0dOIiwiQ09MMTRBMSIsIkJHTiIsIkNPTDExQTEiLCJMVU0iLCJBQ0FOIiwiQ0ZUUiIsIkFOTzEiLCJUQUNTVEQyIiksIAogICAgc2xpbS5jb2wubGFiZWwgPSBUUlVFLCBncm91cC5sYWJlbC5yb3QgPSBUUlVFLHVzZS5zY2FsZWQgPSBULGdyb3VwLmJ5PSJyZXMuMC44Iixncm91cC5jZXggPSA2MCxjZXgucm93PTMwLGdyb3VwLm9yZGVyID0gYyg0LDIsNiwxLDcsNSwwLDMpCiAgKQpgYGAKCmBgYHtyLGZpZy5oZWlnaHQ9NCxmaWcud2lkdGg9MTZ9CkRvdFBsb3Qob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjNfc3ViMSwgY29scy51c2UgPSBjKCJmb3Jlc3RncmVlbiIsIm1hZ2VudGEzIiksZ2VuZXMucGxvdCA9IGMoIlRQNjMiLCJLUlQxNSIsIktSVDUiLCJLUlQxNyIsIktSVDE0IiwiU09TVERDMSIsIkZPWEoxIiwiRk9YTjQiLCJTSElTQTgiLCJNQ0lEQVMiLCJTTlROIiwiQ0RIUjMiLCJDRkFQNTMiLCJDRVROMiIsIktSVDQiLCJLUlQxMyIsIk1VQzEiLCJNVUM0IiwiTVVDMTYiLCJNVUMyMCIsIlNFUlBJTkIzIiwiTVlIMTEiLCJBQ1RHMiIsIk1ZTEsiLCJBUE9FIiwiVEFHTE4iLCJMVEYiLCJBWkdQMSIsIkRNQlQxIiwiS0NOTjQiLCJGQ0dCUCIsIkxSUkMyNiIsIktSVDciLCJDQ0wyOCIsIkFRUDUiLCJNVUM1QiIsIlNQREVGIiwiTFlaIiwiVElNUDMiLCJPR04iLCJDT0wxNEExIiwiQkdOIiwiTUdQIiwiQ09MMTFBMSIsIkxVTSIsIkFDQU4iLCJDRlRSIiwiQU5PMSIpLGdyb3VwLmJ5ID0gImlkZW50IiwgeC5sYWIucm90ID0gVCxwbG90LmxlZ2VuZCA9IFQpCmBgYAoKYGBge3J9CnByb3AudGFibGUodGFibGUoSHNfR0EyMTIzX1RyYWNoZWFfdjNfc3ViMUBtZXRhLmRhdGEkYWdlLEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjFAbWV0YS5kYXRhJHJlcy4wLjgpLDEpCgpgYGAKCmBgYHtyfQpuLnBjcyA9IDE2CnJlcy51c2VkIDwtIDEuMgoKSHNfR0EyMTIzX1RyYWNoZWFfdjNfc3ViMSA8LSBGaW5kQ2x1c3RlcnMob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjNfc3ViMSwgcmVkdWN0aW9uLnR5cGUgPSAicGNhIiwgZGltcy51c2UgPSAxOm4ucGNzLCAKICAgIHJlc29sdXRpb24gPSByZXMudXNlZCwgcHJpbnQub3V0cHV0ID0gMCwgc2F2ZS5TTk4gPSBUUlVFKQpgYGAKCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxIDwtIFJ1blRTTkUob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjNfc3ViMSwgZGltcy51c2UgPSAxOm4ucGNzLCBzZWVkLnVzZSA9IDEwLCBwZXJwbGV4aXR5PTMwLCBkaW0uZW1iZWQgPSAyLGsucGFyYW09MTApCgpgYGAKCmBgYHtyfQpUU05FUGxvdChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxLCBkby5sYWJlbCA9IFQsZ3JvdXAuYnk9InJlcy4xLjIiKQoKYGBgCgpgYGB7cixmaWcuaGVpZ2h0PTIwLGZpZy53aWR0aD02MH0KRG9IZWF0bWFwKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEsIGdlbmVzLnVzZSA9IGMoIlRQNjMiLCJLUlQxNSIsIktSVDUiLCJLUlQxNyIsIktSVDE0IiwiU09TVERDMSIsIlNNT0MyIiwiU09YOSIsIkZPWE40IiwiU0hJU0E4IiwiTUNJREFTIiwiU05UTiIsIkNESFIzIiwiRk9YSjEiLCJLUlQ0IiwiTVVDMSIsIk1VQzQiLCJNVUMyMCIsIlNFUlBJTkIzIiwiR1NUUDEiLCJBTE9YMTUiLCJDRDkiLCJNWUgxMSIsIkFDVEcyIiwiTVlMSyIsIlRBR0xOIiwiTFRGIiwiQVpHUDEiLCJETUJUMSIsIkZDR0JQIiwiQ0NMMjgiLCJBUVA1IiwiTVVDNUIiLCJTUERFRiIsIlJOQVNFMSIsIkxZWiIsIlRJTVAzIiwiT0dOIiwiQ09MMTRBMSIsIkJHTiIsIkNPTDExQTEiLCJMVU0iLCJBQ0FOIiwiQ0ZUUiIsIkFOTzEiLCJUQUNTVEQyIiwiU0VSUElOQjQiLCJTRVJQSU5CMTMiLCJOUFBDIiksIAogICAgc2xpbS5jb2wubGFiZWwgPSBUUlVFLCBncm91cC5sYWJlbC5yb3QgPSBUUlVFLHVzZS5zY2FsZWQgPSBULGdyb3VwLmJ5PSJyZXMuMS4yIixncm91cC5jZXggPSA2MCxjZXgucm93PTMwLGdyb3VwLm9yZGVyID0gYygyLDQsNiwxLDcsOCw1LDAsMykKICApCmBgYAoKCmBgYHtyfQpIc192M19zdWIxX3JlczEuMl9jOG92ZXIyXzQ8LUZpbmRNYXJrZXJzKEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEsaWRlbnQuMT1jKDgpLGlkZW50LjIgPSBjKDIsNCksb25seS5wb3MgPSBUUlVFKQpIc192M19zdWIxX3JlczEuMl9jOG92ZXIyXzQKYGBgCgpgYGB7cn0KbGlicmFyeShwbHlyKQpIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxQG1ldGEuZGF0YSRjZWxsX3R5cGU8LW1hcHZhbHVlcyhIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxQG1ldGEuZGF0YSRyZXMuMS4yLGZyb209YygiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiksdG89YygiU2VjcmV0b3J5X1NNRyIsIkNpbGlhdGVkIiwiQmFzYWxfU0UiLCJFcGNhbV9FQ00iLCJCYXNhbF9TRSIsIk15b2VwaXRoZWxpYWwiLCJDaWxpYXRlZF9Gb3huNCIsIlNlY3JldG9yeV9TRSIsIkJhc2FsX1NNRyIpKQpgYGAKCgpgYGB7cixmaWcuaGVpZ2h0PTMwLGZpZy53aWR0aD02MH0KRG9IZWF0bWFwKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjEsIGdlbmVzLnVzZSA9IGMoIkZPWE40IiwiUExLNCIsIlNISVNBOCIsIk1DSURBUyIsIlNOVE4iLCJDREhSMyIsIkZPWEoxIiwiVFA2MyIsIktSVDE1IiwiS1JUNSIsIktSVDE3IiwiS1JUMTQiLCJTT1NUREMxIiwiU01PQzIiLCJOUFBDIiwiS1JUNCIsIk1VQzEiLCJNVUM0IiwiTVVDMjAiLCJTRVJQSU5CMyIsIlNFUlBJTkI0IiwiU0VSUElOQjEzIiwiR1NUUDEiLCJBTE9YMTUiLCJDRDkiLCJTT1g5IiwiTFRGIiwiQVFQNSIsIkxSUkMyNiIsIkFaR1AxIiwiRE1CVDEiLCJGQ0dCUCIsIkNDTDI4IiwiTVVDNUIiLCJTUERFRiIsIlJOQVNFMSIsIkxZWiIsIk1ZSDExIiwiQUNURzIiLCJNWUxLIiwiVEFHTE4iLCJUSU1QMyIsIk9HTiIsIkNPTDE0QTEiLCJCR04iLCJDT0wxMUExIiwiTFVNIiwiQUNBTiIsIkNGVFIiLCJBTk8xIiksIAogICAgc2xpbS5jb2wubGFiZWwgPSBUUlVFLCBncm91cC5sYWJlbC5yb3QgPSBUUlVFLHVzZS5zY2FsZWQgPSBULGdyb3VwLmJ5PSJjZWxsX3R5cGUiLGdyb3VwLmNleCA9IDYwLGNleC5yb3c9MzAsZ3JvdXAub3JkZXIgPSBjKCJDaWxpYXRlZF9Gb3huNCIsIkNpbGlhdGVkIiwiQmFzYWxfU0UiLCJTZWNyZXRvcnlfU0UiLCJCYXNhbF9TTUciLCJTZWNyZXRvcnlfU01HIiwiTXlvZXBpdGhlbGlhbCIsIkVwY2FtX0VDTSIpCiAgKQpgYGAKCiMjIyMjIFRvIGFubm90YXRlIEhzX0dBMjEyM19UcmFjaGVhX3YzOgoKYGBge3J9CkhzX3YzX3R5cGVfc3ViMTwtSHNfR0EyMTIzX1RyYWNoZWFfdjNfc3ViMUBtZXRhLmRhdGEkY2VsbF90eXBlCm5hbWVzKEhzX3YzX3R5cGVfc3ViMSk8LUhzX0dBMjEyM19UcmFjaGVhX3YzX3N1YjFAY2VsbC5uYW1lcwpgYGAKCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92M0BtZXRhLmRhdGEkY2VsbF90eXBlPC1tYXB2YWx1ZXMoSHNfR0EyMTIzX1RyYWNoZWFfdjNAbWV0YS5kYXRhJHJlcy4xLGZyb209YygiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiMTQiLCIxNSIsIjE2IiwiMTciLCIxOCIsIjE5IiwiMjAiLCIyMSIsIjIyIiksdG89YygiRmlicm9ibGFzdCIsIkZpYnJvYmxhc3QiLCJGaWJyb2JsYXN0IiwiVmFzY3VsYXJFbmRvdGhlbGlhbCIsIkZpYnJvYmxhc3QiLCJGaWJyb2JsYXN0IiwiQ3ljbGluZ0ZpYnJvYmxhc3QiLCJGaWJyb2JsYXN0IiwiQ2hvbmRyb2N5dGUiLCJCYXNhbCIsIlNjaHdhbm4vTmV1cmFsIiwiRmlicm9ibGFzdCIsIlNlY3JldG9yeSIsIk1lc2VuY2h5bWFsUHJvZ2VuaXRvciIsIlN0ZW0iLCJGaWJyb2JsYXN0IiwiQ2lsaWF0ZWQiLCJGaWJyb2JsYXN0IiwiQ2hvbmRyb2N5dGUiLCJJbW11bmUiLCJNdXNjbGUiLCJNdXNjbGUiLCJMeW1waGF0aWNFbmRvdGhlbGlhbCIpKQpgYGAKCiMjIyMjdXNlIHRoZSBIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxIGluZm9ybWF0aW9uIHRvIGZ1cnRoZXIgYW5ub3RhdGUgSHNfR0EyMTIzX1RyYWNoZWFfdjM6CgpgYGB7cn0KSHNfR0EyMTIzX1RyYWNoZWFfdjM8LUFkZE1ldGFEYXRhKG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBtZXRhZGF0YSA9IEhzX3YzX3R5cGVfc3ViMSwgY29sLm5hbWUgPSAic3BlY2lmaWNfdHlwZSIpCmBgYApgYGB7cn0KdGFibGUoSHNfR0EyMTIzX1RyYWNoZWFfdjNAbWV0YS5kYXRhJHNwZWNpZmljX3R5cGUpCmBgYAoKYGBge3J9CkhzX0dBMjEyM19UcmFjaGVhX3YzQG1ldGEuZGF0YSRzcGVjaWZpY190eXBlIDwtIGlmZWxzZShpcy5uYShIc19HQTIxMjNfVHJhY2hlYV92M0BtZXRhLmRhdGEkc3BlY2lmaWNfdHlwZSksIGFzLmNoYXJhY3RlcihIc19HQTIxMjNfVHJhY2hlYV92M0BtZXRhLmRhdGEkY2VsbF90eXBlKSwgYXMuY2hhcmFjdGVyKEhzX0dBMjEyM19UcmFjaGVhX3YzQG1ldGEuZGF0YSRzcGVjaWZpY190eXBlKSkKYGBgCgojIyMjIyBub3cgd2UgaGF2ZSBhbm5vdGF0aW9uIGZvciBhbGwgY2VsbHM6CgpgYGB7cn0KdGFibGUoSHNfR0EyMTIzX1RyYWNoZWFfdjNAbWV0YS5kYXRhJHNwZWNpZmljX3R5cGUsSHNfR0EyMTIzX1RyYWNoZWFfdjNAbWV0YS5kYXRhJGFnZSkKYGBgCmBgYHtyfQpIc19HQTIxMjNfVHJhY2hlYV92MzwtU2V0QWxsSWRlbnQoSHNfR0EyMTIzX1RyYWNoZWFfdjMsaWQ9InNwZWNpZmljX3R5cGUiKQpHQTIxMjN3a192My5zcGVjaWZpYy50eXBlLm1hcmtlcnMgPC0gRmluZEFsbE1hcmtlcnMob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIG9ubHkucG9zID0gVFJVRSwgbWluLnBjdCA9IDAuMjUsIHRocmVzaC51c2UgPSAwLjI1KQp3cml0ZS50YWJsZShHQTIxMjN3a192My5zcGVjaWZpYy50eXBlLm1hcmtlcnMsIkdBMjEyM3drX3YzLnNwZWNpZmljVHlwZS5tYXJrZXJzLnR4dCIsc2VwPSJcdCIpCgpgYGAKCmBgYHtyfQpHQTIxMjN3a192My5zcGVjaWZpYy5jbHVzdC5tYXJrZXJzICU+JSBncm91cF9ieShjbHVzdGVyKSAlPiUgdG9wX24oMjAsIGF2Z19sb2dGQykKYGBgCmBgYHtyfQoKYGBgCgoKYGBge3IsZmlnLmhlaWdodD0yMCxmaWcud2lkdGg9NjB9CkRvSGVhdG1hcChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgZ2VuZXMudXNlID0gYygiQ0ZUUiIsIkFOTzEiLCJFUENBTSIsIlRQNjMiLCJLUlQ1IiwiRk9YTjQiLCJTSElTQTgiLCJNQ0lEQVMiLCJTTlROIiwiQ0RIUjMiLCJGT1hKMSIsIk1VQzE2IiwiTVVDMSIsIk1VQzQiLCJNVUMyMCIsIlNFUlBJTkIzIiwiQ0Q5IiwiS1JUMTQiLCJTT1NUREMxIiwiTVVDNUIiLCJTUERFRiIsIlJOQVNFMSIsIkxZWiIsIlNOQVAyNSIsIkFTQ0wxIiwiUExQMSIsIk1QWiIsIkZDRVIxRyIsIkMxUUEiLCJQRUNBTTEiLCJMWVZFMSIsIkFDVEEyIiwiUkdTNSIsIk5PVENIMyIsIlNPWDkiLCJDT0wyQTEiLCJBQ0FOIiwiV05UMiIsIlRIWTEiLCJUV0lTVDIiLCJNS0k2NyIpLCAKICAgIHNsaW0uY29sLmxhYmVsID0gVFJVRSwgZ3JvdXAubGFiZWwucm90ID0gVFJVRSx1c2Uuc2NhbGVkID0gVCxncm91cC5ieT0ic3BlY2lmaWNfdHlwZSIsZ3JvdXAuY2V4ID0gMzAsY2V4LnJvdz0zMCxncm91cC5vcmRlciA9IGMoIkJhc2FsX1NFIiwiQ2lsaWF0ZWRfRm94bjQiLCJDaWxpYXRlZCIsIlNlY3JldG9yeV9TRSIsIkJhc2FsX1NNRyIsIlNlY3JldG9yeV9TTUciLCJNeW9lcGl0aGVsaWFsIiwiRXBjYW1fRUNNIiwiU3RlbSIsIlNjaHdhbm4vTmV1cmFsIiwiSW1tdW5lIiwiVmFzY3VsYXJFbmRvdGhlbGlhbCIsIkx5bXBoYXRpY0VuZG90aGVsaWFsIiwiTXVzY2xlIiwiQ2hvbmRyb2N5dGUiLCJNZXNlbmNoeW1hbFByb2dlbml0b3IiLCJGaWJyb2JsYXN0IiwiQ3ljbGluZ0ZpYnJvYmxhc3QiKQogICkKYGBgCgpgYGB7cn0KcHJpbnQobGV2ZWxzKEhzX0dBMjEyM19UcmFjaGVhX3YzQGlkZW50KSkKYGBgCgpgYGB7cixmaWcuaGVpZ2h0PTYsZmlnLndpZHRoPTEyfQpIc19HQTIxMjNfVHJhY2hlYV92MzwtU2V0QWxsSWRlbnQob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIGlkID0gInNwZWNpZmljX3R5cGUiKQpIc19HQTIxMjNfVHJhY2hlYV92M0BpZGVudCA9IGZhY3RvcihIc19HQTIxMjNfVHJhY2hlYV92M0BpZGVudCxsZXZlbHMoSHNfR0EyMTIzX1RyYWNoZWFfdjNAaWRlbnQpW2MoMSwxNSw1LDQsMiwxNiwxMyw3LDE3LDE0LDksMTAsMTgsMTIsMywxMSw4LDYpXSkKCmBgYAoKYGBge3IsZmlnLmhlaWdodD01LGZpZy53aWR0aD0xMn0KRG90UGxvdChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgY29scy51c2UgPSBjKCJsaWdodGdyYXkiLCJyZWQiKSxnZW5lcy5wbG90ID0gYygiQ0ZUUiIsIkFOTzEiLCJFUENBTSIsIlRQNjMiLCJGT1hONCIsIlNISVNBOCIsIk1DSURBUyIsIlNOVE4iLCJDREhSMyIsIkZPWEoxIiwiTVVDMTYiLCJTRVJQSU5CMyIsIlNPWDkiLCJLUlQxNCIsIlNPU1REQzEiLCJNVUM1QiIsIlNQREVGIiwiTFRGIiwiTFlaIiwiQUNUQTIiLCJQT1U1RjEiLCJFU1JHIiwiU05BUDI1IiwiQ0hHQSIsIlBMUDEiLCJNUFoiLCJGQ0VSMUciLCJDMVFBIiwiUEVDQU0xIiwiTFlWRTEiLCJNWUgxMSIsIlJHUzUiLCJOT1RDSDMiLCJDT0wyQTEiLCJBQ0FOIiwiV05UMiIsIkNEMzQiLCJUSFkxIiwiVFdJU1QyIiwiTUtJNjciKSxncm91cC5ieSA9ICJpZGVudCIsIHgubGFiLnJvdCA9IFQscGxvdC5sZWdlbmQgPSBUKQpgYGAKCmBgYHtyLGZpZy5oZWlnaHQ9NSxmaWcud2lkdGg9MTJ9CkRvdFBsb3Qob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIGNvbHMudXNlID0gYygiZm9yZXN0Z3JlZW4iLCJtYWdlbnRhMyIpLGdlbmVzLnBsb3QgPSBjKCJDRlRSIiwiQU5PMSIsIkVQQ0FNIiwiVFA2MyIsIktSVDUiLCJGT1hONCIsIlNISVNBOCIsIk1DSURBUyIsIlNOVE4iLCJDREhSMyIsIkZPWEoxIiwiTVVDMTYiLCJTRVJQSU5CMyIsIlNPWDkiLCJLUlQxNCIsIlNPU1REQzEiLCJNVUM1QiIsIk1VQzVBQyIsIlNQREVGIiwiTFRGIiwiTFlaIiwiQUNUQTIiLCJQT1U1RjEiLCJFU1JHIiwiU05BUDI1IiwiQ0hHQSIsIlBMUDEiLCJNUFoiLCJGQ0VSMUciLCJDMVFBIiwiUEVDQU0xIiwiTFlWRTEiLCJNWUgxMSIsIlJHUzUiLCJOT1RDSDMiLCJDT0wyQTEiLCJBQ0FOIiwiV05UMiIsIlBJMTYiLCJDRDM0IiwiVEhZMSIsIlRXSVNUMiIsIk1LSTY3IiksZ3JvdXAuYnkgPSAiaWRlbnQiLCB4LmxhYi5yb3QgPSBULHBsb3QubGVnZW5kID0gVCxjb2wubWluID0gLTIsY29sLm1heCA9IDIpCmBgYApgYGB7cixmaWcuaGVpZ2h0PTUsZmlnLndpZHRoPTEyfQpEb3RQbG90KG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBjb2xzLnVzZSA9IGMoImZvcmVzdGdyZWVuIiwibWFnZW50YTMiKSxnZW5lcy5wbG90ID0gYygiQ0ZUUiIsIkFOTzEiLCJFUENBTSIsIlRQNjMiLCJLUlQ1IiwiS1JUMTQiLCJTT1NUREMxIiwiU09YOSIsIkZPWE40IiwiU0hJU0E4IiwiU05UTiIsIkZPWEoxIiwiVEZGMyIsIk1VQzVCIiwiU1BERUYiLCJMVEYiLCJMWVoiLCJBQ1RBMiIsIlBPVTVGMSIsIkVTUkciLCJUVUJCMyIsIlNOQVAyNSIsIkNIR0EiLCJBU0NMMSIsIlBMUDEiLCJNUFoiLCJGQ0VSMUciLCJDMVFBIiwiUEVDQU0xIiwiTFlWRTEiLCJNWUgxMSIsIlJHUzUiLCJOT1RDSDMiLCJDT0wyQTEiLCJBQ0FOIiwiV05UMiIsIkNEMzQiLCJUSFkxIiwiQ0xFQzNCIiwiVFdJU1QyIiwiTUtJNjciKSxncm91cC5ieSA9ICJpZGVudCIsIHgubGFiLnJvdCA9IFQscGxvdC5sZWdlbmQgPSBULGNvbC5taW4gPSAtMixjb2wubWF4ID0gMikKYGBgCmBgYHtyLGZpZy5oZWlnaHQ9NixmaWcud2lkdGg9OH0KRG90UGxvdChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgY29scy51c2UgPSBjKCJmb3Jlc3RncmVlbiIsIm1hZ2VudGEzIiksZ2VuZXMucGxvdCA9IGMoIkZPWEoxIiwiTFRGIiwiVFA2MyIsIldOVDIiLCJQSTE2IiwiQ0xFQzNCIiwiRVBDQU0iLCJURVJDIiwiVEVSVCIsIkNMRE42IiwiUE9VNUYxIiwiTElOMjhBIiwiRVNSRyIsIkwxVEQxIiwiRFBQQTQiLCJVVEYxIiwiRk9YRDMtQVMxIiwiQ1JBQlAxIiwiVEhZMSIsIlRVQkIyQiIsIlVDSEwxIiwiVFVCQjMiLCJTTkFQMjUiLCJQTFAxIiksZ3JvdXAuYnkgPSAiaWRlbnQiLCB4LmxhYi5yb3QgPSBULHBsb3QubGVnZW5kID0gVCkKYGBgCgpgYGB7cn0KZGZfSHM8LUZldGNoRGF0YShIc19HQTIxMjNfVHJhY2hlYV92MyxjKCJBTk8xIiwiQ0ZUUiIsIlNFUlBJTkIzIiwiTVVDMTYiLCJzcGVjaWZpY190eXBlIikpCgpgYGAKCmBgYHtyLCBmaWcuaGVpZ2h0PTMsIGZpZy53aWR0aD0xMH0KZ2dwbG90KGRmX0hzLGFlcyhzcGVjaWZpY190eXBlLENGVFIpKStnZW9tX2RvdHBsb3QoYmluYXhpcz0ieSIsYWVzKGZpbGw9c3BlY2lmaWNfdHlwZSksYmlud2lkdGg9MC4wNSxzdGFja2Rpcj0iY2VudGVyIixwb3NpdGlvbj1wb3NpdGlvbl9kb2RnZSgwLjgpLCBkb3RzaXplPTAuMDE4KSsgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSxoanVzdD0xKSkrIHN0YXRfc3VtbWFyeShhZXMoY29sb3I9c3BlY2lmaWNfdHlwZSksZnVuLmRhdGE9bWVhbl9zZGwsIGZ1bi5hcmdzID0gbGlzdChtdWx0PTEpLCAKICAgICAgICAgICAgICAgICBnZW9tPSJwb2ludHJhbmdlIixwb3NpdGlvbj1wb3NpdGlvbl9kb2RnZSgwLjcpKQpgYGAKCmBgYHtyLGZpZy53aWR0aD0xMCxmaWcuaGVpZ2h0PTZ9ClRTTkVQbG90KG9iamVjdCA9IEhzX0dBMjEyM19UcmFjaGVhX3YzLCBkby5sYWJlbCA9IEYsZ3JvdXAuYnk9InNwZWNpZmljX3R5cGUiLHB0LnNpemUgPSAwLjMpK3NjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygnI2U2MTk0YicgLCAnIzgwODA4MCcsJyMzY2I0NGInLCAnI2ZmZTExOScsICcjNDM2M2Q4JywgJyM5MTFlYjQnLCAnIzQ2ZjBmMCcsICcjZjAzMmU2JywgJyNiY2Y2MGMnLCAnIzAwODA4MCcsICcjZTZiZWZmJywgJyM5YTYzMjQnLCAnI2ZhYmViZScsICAnIzgwMDAwMCcsICcjYWFmZmMzJywgJyM4MDgwMDAnLCcjZmZkOGIxJywgJyMwMDAwNzUnLCAnI2Y1ODIzMScsICcjMDAwMDAwJywnI2ZmZmFjOCcKKSkKCmBgYAoKIyMjIyMgRm9yIHRoZSBwdXJwb3NlIG9mIHZpc3VhbGl6YXRpb24sIHdlIGF2ZXJhZ2Ugd2l0aGluIGVhY2ggc3BlY2lmaWMgY2VsbCB0eXBlOgoKYGBge3J9CkhzX0dBMjEyM19UcmFjaGVhX3YzPC1TZXRBbGxJZGVudChvYmplY3QgPSBIc19HQTIxMjNfVHJhY2hlYV92MywgaWQgPSAic3BlY2lmaWNfdHlwZSIpCmF2ZXJhZ2VfSHNfc3BlY2lmaWNfQW5ub3RhdGlvbjwtQXZlcmFnZUV4cHJlc3Npb24ob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMscmV0dXJuLnNldXJhdCA9IFQpCmBgYAoKYGBge3IsZmlnLmhlaWdodD0xNSxmaWcud2lkdGg9MTV9CgpEb0hlYXRtYXAob2JqZWN0ID0gYXZlcmFnZV9Ic19zcGVjaWZpY19Bbm5vdGF0aW9uLCBnZW5lcy51c2UgPSBjKCJFUENBTSIsIlRQNjMiLCJLUlQ1IiwiRk9YTjQiLCJTSElTQTgiLCJNQ0lEQVMiLCJTTlROIiwiQ0RIUjMiLCJGT1hKMSIsIk1VQzE2IiwiU0VSUElOQjMiLCJTT1g5IiwiS1JUMTQiLCJTT1NUREMxIiwiTVVDNUIiLCJNVUM1QUMiLCJTUERFRiIsIkxURiIsIkxZWiIsIkFDVEEyIiwiTVlIMTEiLCJQT1U1RjEiLCJFU1JHIiwiU05BUDI1IiwiQVNDTDEiLCJDSEdBIiwiUExQMSIsIk1QWiIsIkZDRVIxRyIsIkMxUUEiLCJQRUNBTTEiLCJMWVZFMSIsIlJHUzUiLCJOT1RDSDMiLCJDT0wyQTEiLCJBQ0FOIiwiV05UMiIsIlBJMTYiLCJDRDM0IiwiVEhZMSIsIlRXSVNUMiIsIk1LSTY3IiwiQ0ZUUiIsIkFOTzEiKSwgCiAgICBzbGltLmNvbC5sYWJlbCA9IFRSVUUsIGdyb3VwLmxhYmVsLnJvdCA9IFRSVUUsdXNlLnNjYWxlZCA9IFQsZ3JvdXAuY2V4ID0gMzAsY2V4LnJvdz0yMCxncm91cC5vcmRlciA9IGMoIkJhc2FsX1NFIiwiQmFzYWxfU01HIiwiQ2lsaWF0ZWRfRm94bjQiLCJDaWxpYXRlZCIsIlNlY3JldG9yeV9TRSIsCiAiU2VjcmV0b3J5X1NNRyIsICJNeW9lcGl0aGVsaWFsIiwiRXBjYW1fRUNNIiwiU3RlbSIsIlNjaHdhbm4vTmV1cmFsIiwiSW1tdW5lIiwiTHltcGhhdGljRW5kb3RoZWxpYWwiLCJWYXNjdWxhckVuZG90aGVsaWFsIiwiTXVzY2xlIiwiQ2hvbmRyb2N5dGUiLCJNZXNlbmNoeW1hbFByb2dlbml0b3IiLCJGaWJyb2JsYXN0IiwiQ3ljbGluZ0ZpYnJvYmxhc3QiKSkKYGBgCmBgYHtyLGZpZy5oZWlnaHQ9MTUsZmlnLndpZHRoPTE1fQoKRG9IZWF0bWFwKG9iamVjdCA9IGF2ZXJhZ2VfSHNfc3BlY2lmaWNfQW5ub3RhdGlvbiwgZ2VuZXMudXNlID0gYygiRVBDQU0iLCJUUDYzIiwiS1JUNSIsIktSVDE0IiwiU09TVERDMSIsIlNPWDkiLCJGT1hONCIsIlNISVNBOCIsIlNOVE4iLCJGT1hKMSIsIlRGRjMiLCJNVUM1QiIsIlNQREVGIiwiTFRGIiwiTFlaIiwiQUNUQTIiLCJQT1U1RjEiLCJFU1JHIiwiVFVCQjMiLCJTTkFQMjUiLCJDSEdBIiwiQVNDTDEiLCJQTFAxIiwiTVBaIiwiRkNFUjFHIiwiQzFRQSIsIlBFQ0FNMSIsIkxZVkUxIiwiTVlIMTEiLCJSR1M1IiwiTk9UQ0gzIiwiQ09MMkExIiwiQUNBTiIsIldOVDIiLCJDRDM0IiwiVEhZMSIsIkNMRUMzQiIsIlRXSVNUMiIsIk1LSTY3IiwiQ0ZUUiIsIkFOTzEiKSwgCiAgICBzbGltLmNvbC5sYWJlbCA9IFRSVUUsIGdyb3VwLmxhYmVsLnJvdCA9IFRSVUUsdXNlLnNjYWxlZCA9IFQsZ3JvdXAuY2V4ID0gMzAsY2V4LnJvdz0yMCxncm91cC5vcmRlciA9IGMoIkJhc2FsX1NFIiwiQmFzYWxfU01HIiwiQ2lsaWF0ZWRfRm94bjQiLCJDaWxpYXRlZCIsIlNlY3JldG9yeV9TRSIsCiAiU2VjcmV0b3J5X1NNRyIsICJNeW9lcGl0aGVsaWFsIiwiRXBjYW1fRUNNIiwiU3RlbSIsIlNjaHdhbm4vTmV1cmFsIiwiSW1tdW5lIiwiTHltcGhhdGljRW5kb3RoZWxpYWwiLCJWYXNjdWxhckVuZG90aGVsaWFsIiwiTXVzY2xlIiwiQ2hvbmRyb2N5dGUiLCJNZXNlbmNoeW1hbFByb2dlbml0b3IiLCJGaWJyb2JsYXN0IiwiQ3ljbGluZ0ZpYnJvYmxhc3QiKSkKYGBgCgpgYGB7cn0Kc2F2ZShIc19HQTIxMjNfVHJhY2hlYV92M19zdWIxLGZpbGU9InNldXJhdF9HQTIxMjN3a192M19zdWIxLlJEYXRhIikKYGBgCmBgYHtyfQpzYXZlKEhzX0dBMjEyM19UcmFjaGVhX3YzLGZpbGU9InNldXJhdF9HQTIxMjN3a192My5SRGF0YSIpCmBgYApgYGB7cn0KI2xvYWQoZmlsZT0ic2V1cmF0X0dBMjEyM3drX3YzLlJEYXRhIikKYGBgCgojIyMjIyBjaGVjayBhIGZldyB2aXJ1cyByZWNlcHRvcnM6CgpgYGB7cixmaWcuaGVpZ2h0PTIwLCBmaWcud2lkdGg9MjB9ClZsblBsb3Qob2JqZWN0ID0gSHNfR0EyMTIzX1RyYWNoZWFfdjMsIGZlYXR1cmVzLnBsb3QgPSBjKCJDREhSMyIsIkFDRTIiLCJUTVBSU1MyIiwiVE1QUlNTNCIsIkFOUEVQIiwiRFBQNCIsIlNUNkdBTDEiLCJTVDNHQUw0IiksIG5Db2wgPSAyLGdyb3VwLmJ5PSJzcGVjaWZpY190eXBlIixwb2ludC5zaXplLnVzZT0wLjMseC5sYWIucm90ID0gVCkKYGBgCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo=